2012-10-05 59 views

回答

13

您可以枚举直接传递到一个新的List<string> instace的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()); 

BTW:你是说:

的方式之一就是通过这个itearte并添加每个反对列表,但这个过程是不同的时间消耗

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

+0

感谢您的帮助,但我IEnumerable这不是IEnumerable 所以我不能使用这种方法。是的,我知道这也会反复通过它,但它会花费更少的时间,然后手动做...因为我正在做... – user1685652

+0

@ user1685652:不,它会花费同样多的时间。为什么它应该更快? –

+0

对不起,我没有发布整个事情,因为我只想要转换的方式。为你解释整个过程首先需要将它转换成一个DirectoryEntry类型对象,然后访问它的属性,然后添加这需要花费很多时间。 – user1685652

相关问题