转换 List中的元素列出<纹理>在 C# (Unity3d) 中

发布于 2024-10-16 02:58:29 字数 217 浏览 2 评论 0原文

我应该如何最好地将元素转换

List<string> icons

为:

List<Texture> icons

我正在从 XML 文件中提取文件名(因此是初始字符串格式),但我想将文件名转换为纹理格式,因为它们是在运行时动态形成的,所以我不能来自检查员的负载。

How should I best go about converting the elements of

List<string> icons

to:

List<Texture> icons

I'm pulling filenames from an XML file (thus the initial string format) but I want to convert the filenames to texture format because they are dynamically formed at runtime so I can't load from the inspector.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

怪我入戏太深 2024-10-23 02:58:29

您可以使用 ConvertAll

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

或使用 LINQ 将

from s in icons select new Texture(...)

两者转换为几乎相同的内容。不同之处在于,LINQ 为您提供了一个 IEnumerable,它直接从字符串列表中汇集数据(无需创建新列表),因此它非常适合一次性使用。如果您需要持久的纹理列表,请使用 ConvertAll 或使用 ToList() 固定 IEnumerable

You can use ConvertAll<T>

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

or you can use LINQ to transform

from s in icons select new Texture(...)

both prety much boil down to the same. Difference is that LINQ gives you an IEnumerable that pools data directly from string list (without creating a new list) so its good for once-off uses. If you need a persisten list of Textures either use ConvertAll or pin down the IEnumerable using ToList()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文