将List <string>中的元素转换为C#(Unity3d)</texture> </string>中的List <texture>

时间:2011-02-06 11:20:47

标签: c# unity3d

我应该如何最好地转换

的元素
List<string> icons

为:

List<Texture> icons

我从XML文件中提取文件名(因此是初始字符串格式),但我想将文件名转换为纹理格式,因为它们是在运行时动态形成的,因此我无法从检查器加载。

1 个答案:

答案 0 :(得分:5)

您可以使用ConvertAll<T>

icons.ConvertAll<Texture>(s => new Texture(..whatever conversion...))

或者您可以使用LINQ进行转换

from s in icons select new Texture(...)
两个prety很多归结为相同。区别在于LINQ为您提供了一个IEnumerable,它直接从字符串列表中汇集数据(不创建新列表),因此它适用于一次性使用。如果您需要纹理的持久列表,请使用ConvertAll或使用IEnumerable确定ToList()