gpt4 book ai didi

c# - 在 .Net 2.0 中从 ArrayList 转换为 List 的最佳方法是什么

转载 作者:太空狗 更新时间:2023-10-29 22:14:57 24 4
gpt4 key购买 nike

我有一个 ArrayList类型 BookingDataList<BookingData>

我使用的是 .net 2.0,所以我不能使用 arrayList.Cast<int>().ToList() ,我不想在这里做 foreach 循环,你有更好的主意吗?

谢谢。

最佳答案

请注意,某事 将不得不枚举数组列表来构造 List<T> ;这只是你自己做还是留给其他(框架/实用程序)方法的问题。

  1. 如果这是一次性的,您希望避免的解决方案(使用“就地”foreach 循环进行转换)是一个完全合理的选择。如果您发现自己经常这样做,您可以将其提取到通用实用程序方法中,如 cdhowie 的回答。

  2. 如果您的限制只是您必须目标 .NET 2.0(但可以使用 C# 3),请考虑 LINQBridge ,这是 LINQ to Objects for .NET 2.0 的重新实现。这将使您可以使用 Cast您提供的 sample 没有变化。它也适用于 C# 2,但您不会获得扩展方法语法、更好的类型推断等的好处。

  3. 如果您不关心性能,也不想麻烦编写实用方法,您可以使用内置的 ArrayList.ToArray 方法来提供帮助,通过创建一个与 List<T> 配合良好的中间数组(这并不比 foreach 短):


ArrayList arrayList = ...

// Create intermediary array
BookingData[] array = (BookingData[]) arrayList.ToArray(typeof(BookingData));

// Create the List<T> using the constructor that takes an IEnumerable<T>
List<BookingData> list = new List<BookingData>(array);

最后,我建议,如果可能的话,完全放弃使用过时的非通用集合类。

关于c# - 在 .Net 2.0 中从 ArrayList 转换为 List 的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4437118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com