在.NET中,如何在不使用Foreach的情况下将ArrayList转换为强类型的泛型列表?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (31)

请参阅下面的代码示例。我需要ArrayList成为一个通用的列表。

ArrayList arrayList = GetArrayListOfInts();  
List<int> intList = new List<int>();  

//Can this foreach be condensed into one line?  
foreach (int number in arrayList)  
{  
    intList.Add(number);  
}  
return intList;    
提问于
用户回答回答于

尝试以下操作

var list = arrayList.Cast<int>().ToList();

这只会使用C#3.5编译器,因为它利用了3.5框架中定义的某些扩展方法。

用户回答回答于

这是低效的(它不必要地产生中间数组),但是很简洁,并且将在.NET 2.0上工作:

List<int> newList = new List<int>(arrayList.ToArray(typeof(int)));

扫码关注云+社区