请参阅下面的代码示例。我需要ArrayList
是一个通用列表。我不想使用foreach
。
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;
发布于 2009-04-24 15:11:28
请尝试以下操作
var list = arrayList.Cast<int>().ToList();
这只能使用C# 3.5编译器,因为它利用了3.5框架中定义的某些扩展方法。
发布于 2009-04-24 15:16:19
这是低效的(它使得中间数组变得不必要),但是很简洁,并且可以在.NET 2.0上工作:
List<int> newList = new List<int>(arrayList.ToArray(typeof(int)));
发布于 2011-02-23 01:30:13
使用扩展方法怎么样?
来自http://www.dotnetperls.com/convert-arraylist-list
using System;
using System.Collections;
using System.Collections.Generic;
static class Extensions
{
/// <summary>
/// Convert ArrayList to List.
/// </summary>
public static List<T> ToList<T>(this ArrayList arrayList)
{
List<T> list = new List<T>(arrayList.Count);
foreach (T instance in arrayList)
{
list.Add(instance);
}
return list;
}
}
https://stackoverflow.com/questions/786268
复制相似问题