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

use*_*652 4 c# ienumerable .net-2.0

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

Dan*_*rth 13

您可以将枚举直接传递给新实例的构造List<string>函数:

List<string> list = new List<string>(yourEnumerable);
Run Code Online (Sandbox Code Playgroud)

或者你可以使用这个AddRange方法:

List<string> list = new List<string>();
list.AddRange(yourEnumerable);
Run Code Online (Sandbox Code Playgroud)

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

List<string> list = new List<string>();
foreach(object item in yourEnumerable)
    list.Add(item.ToString());
Run Code Online (Sandbox Code Playgroud)

顺便说一句:你说的是:

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

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