2012-10-05 58 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

相關問題