Unity-List解析
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);
}
}
- 点赞
- 收藏
- 关注作者
评论(0)