Unity-List解析

举报
心疼你的一切 发表于 2024/12/13 17:45:55 2024/12/13
【摘要】 List简介:在 Unity 中,List<T >(T是一种数据类型,比如int、string、GameObject等)是一个非常有用的集合类型,它位于System.Collections.Generic命名空间下。它可以动态地调整大小,能够方便地添加、删除和访问元素。博客将会介绍Listd的使用方法。希望这篇博客对Unity的开发者有所帮助。大家好,我是心疼你的一切,不定时更新Unity开...

List简介:
在 Unity 中,List<T >(T是一种数据类型,比如int、string、GameObject等)是一个非常有用的集合类型,它位于System.Collections.Generic命名空间下。它可以动态地调整大小,能够方便地添加、删除和访问元素。

博客将会介绍Listd的使用方法。希望这篇博客对Unity的开发者有所帮助。
大家好,我是心疼你的一切,不定时更新Unity开发技巧,觉得有用记得一键三连哦。
欢迎点赞评论哦.下面就让我们进入正文吧 !

👉二、不常用API

👉2-1、List元素类型转换(ConvertAll)

功能:将List<T>中的元素转换为另一种类型的List<TOutput>。
语法:List<TOutput> newList = oldList.ConvertAll<TOutput>(conversionDelegate);,其中conversionDelegate是一个转换函数,用于定义如何将T类型转换为TOutput类型。
示例:

   using System;
   using System.Collections.Generic;
   public class Example : MonoBehaviour
   {
       void Start()
       {
           List<int> intList = new List<int>() {1, 2, 3};
           List<string> stringList = intList.ConvertAll<string>(i => i.ToString());
       }
   }

👉2-2、判断是否包含与条件匹配的任何元素(Exists)

语法:bool exists = list.Exists(match);,其中match是一个Predicate<T>类型的委托,用于定义匹配条件。
示例:

   using System;
   using System.Collections.Generic;
   public class Example : MonoBehaviour
   {
       void Start()
       {
           List<int> intList = new List<int>() {1, 2, 3};
           bool existsGreaterThanTwo = intList.Exists(i => i > 2);
       }
   }

👉2-3、判断与指定条件匹配的元素,并返回整个list中第一个匹配的元素(Find)

语法:T foundElement = list.Find(match);,其中match是Predicate<T>类型的委托,用于定义匹配条件。
示例:

   using System;
   using System.Collections.Generic;
   public class Example : MonoBehaviour
   {
       void Start()
       {
           List<int> intList = new List<int>() {1, 2, 3};
           int foundElement = intList.Find(i => i > 1);
       }
   }

👉2-4、检索与指定条件匹配的所有元素(FindAll)

语法:List<T> foundElements = list.FindAll(match);,其中match是Predicate<T>类型的委托,用于定义匹配条件。
示例:

   using System;
   using System.Collections.Generic;
   public class Example : MonoBehaviour
   {
       void Start()
       {
           List<int> intList = new List<int>() {1, 2, 3, 4, 5};
           List<int> evenNumbers = intList.FindAll(i => i % 2 == 0);
       }
   }

👉2-5、检索与指定条件匹配的元素,并返回list中第一个匹配元素的索引(FindIndex)

功能:搜索与指定谓词定义的条件匹配的元素,并返回整个List<T>中第一个匹配元素的从零开始的索引。
语法:int index = list.FindIndex(match);,其中match是Predicate<T>类型的委托,用于定义匹配条件。
示例:

   using System;
   using System.Collections.Generic;
   public class Example : MonoBehaviour
   {
       void Start()
       {
           List<int> intList = new List<int>() {1, 2, 3};
           int index = intList.FindIndex(i => i > 1);
       }
   }

👉2-6、检索与指定条件匹配的元素,并返回list中最后一个匹配元素(FindLast)

功能:搜索与指定谓词定义的条件匹配的元素,并返回整个List<T>中的最后一个匹配元素。
语法:T foundElement = list.FindLast(match);,其中match是Predicate<T>类型的委托,用于定义匹配条件。
示例:

   using System;
   using System.Collections.Generic;
   public class Example : MonoBehaviour
   {
       void Start()
       {
           List<int> intList = new List<int>() {1, 2, 3};
           int foundElement = intList.FindLast(i => i < 3);
       }
   }

👉2-7、检索与指定条件匹配的元素,并返回list中最后一个匹配元素的索引(FindLastIndex)

功能:搜索与指定谓词定义的条件匹配的元素,并返回整个List<T>中最后一个匹配元素的从零开始的索引。
语法:int index = list.FindLastIndex(match);,其中match是Predicate<T>类型的委托,用于定义匹配条件。
示例:

   using System;
   using System.Collections.Generic;
   public class Example : MonoBehaviour
   {
       void Start()
       {
           List<int> intList = new List<int>() {1, 2, 3};
           int index = intList.FindLastIndex(i => i < 3);
       }
   }

👉2-8、对列表中的每个元素执行指定操作(ForEach)

语法:list.ForEach(action);,其中action是一个Action<T>类型的委托,用于定义要对每个元素执行的操作。
示例:

   using System;
   using System.Collections.Generic;
   public class Example : MonoBehaviour
   {
       void Start()
       {
           List<int> intList = new List<int>() {1, 2, 3};
           intList.ForEach(i => Debug.Log(i));
       }
   }

👉2-9、创建一个包含list中指定范围的元素生成新的列表(GetRange)

功能:创建一个包含源List<T>中指定范围的元素的新List<T>。
语法:List<T> newList = list.GetRange(index, count);,其中index是起始索引,count是要包含的元素数量。
示例:

   using System;
   using System.Collections.Generic;
   public class Example : MonoBehaviour
   {
       void Start()
       {
           List<int> intList = new List<int>() {1, 2, 3, 4, 5};
           List<int> subList = intList.GetRange(1, 3);
       }
   }

👉2-10、判断list中的所有元素是否与条件匹配(TrueForAll)

语法:bool allMatch = list.TrueForAll(match);,其中match是Predicate<T>类型的委托,用于定义匹配条件。
示例:

   using System;
   using System.Collections.Generic;
   public class Example : MonoBehaviour
   {
       void Start()
       {
           List<int> intList = new List<int>() {2, 4, 6};
           bool allEven = intList.TrueForAll(i => i % 2 == 0);
       }
   }

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。