将 List<string> 中的元素转换为 C# (Unity3d) 中的 List<Texture>
Posted
技术标签:
【中文标题】将 List<string> 中的元素转换为 C# (Unity3d) 中的 List<Texture>【英文标题】:Convert elements in List<string> to List<Texture> in C# (Unity3d) 【发布时间】:2011-06-22 05:27:38 【问题描述】:我应该如何最好地转换
的元素List<string> icons
到:
List<Texture> icons
我正在从 XML 文件中提取文件名(因此是初始字符串格式),但我想将文件名转换为纹理格式,因为它们是在运行时动态形成的,因此我无法从检查器加载。
【问题讨论】:
Texture
类的定义是什么? This?
unity3d.com/support/documentation/ScriptReference/Texture.html - 据我所知 - 我绘制的纹理类的唯一数据是名称和/或路径;因为这是 Unity 检查器要求您加载的唯一变量,并且它自然是普通列表中唯一的数据您可以使用ConvertAll<T>
icons.ConvertAll<Texture>(s => new Texture(..whatever conversion...))
或者您可以使用 LINQ 进行转换
from s in icons select new Texture(...)
两者几乎可以归结为相同的。不同之处在于 LINQ 为您提供了一个 IEnumerable
,它直接从字符串列表中汇集数据(无需创建新列表),因此非常适合一次性使用。如果您需要持久的纹理列表,请使用ConvertAll
或使用ToList()
固定IEnumerable
【讨论】:
以上是关于将 List<string> 中的元素转换为 C# (Unity3d) 中的 List<Texture>的主要内容,如果未能解决你的问题,请参考以下文章