将IEnumerable转换为.net 2.0 </string>中的List <string>

时间:2012-10-05 13:01:26

标签: c# .net-2.0 ienumerable

我需要将IEnumerable转换为List<string>。其中一种方法是迭代并将每个对象添加到列表中,但此过程耗费时间。有没有其他方法可以做到这一点。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:13)

您可以将枚举直接传递到新List<string>实例的constructor中:

List<string> list = new List<string>(yourEnumerable);

或者您可以使用AddRange方法:

List<string> list = new List<string>();
list.AddRange(yourEnumerable);

这个答案假设您实际上已经有IEnumerable<string> 如果不是这种情况,您唯一的选择是循环:

List<string> list = new List<string>();
foreach(object item in yourEnumerable)
    list.Add(item.ToString());

顺便说一句:你说的是:

  

其中一种方法是遍历此方法并将每个对象添加到列表中,但此过程耗费时间

在任何情况下都需要迭代枚举。你怎么能得到所有的价值?在我给你的前两个示例代码中,枚举是在List<T>类中执行的,但它仍在发生。