5

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

4

1 回答 1

17

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

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>类内部执行的,但它仍在发生。

于 2012-10-05T13:02:56.713 回答