2011-08-29 36 views
3

MSDN documentation指示類別Collection<T>在擴展部分中有一個方法ToList()如何在集合上使用ToList <T>

我該如何使用這種方法?

+0

擴展方法:添加'使用System.Linq' –

+0

'ToList()'是一個LINQ擴展方法,添加一個'使用系統。Linq'能夠使用它。 – BrokenGlass

+0

其他人指出如何將ToList擴展方法納入範圍,但更大的問題是您爲什麼要將集合投射到列表。收集實施IList 。也許最好只使用IList 而不是增加將對象指針複製到第二個列表的內存開銷。 –

回答

5

確保您有System.Core.dll參考,並添加,在你的C#文件的頂部,using System.Linq;

可以在documentation for ToList()看到:

Namespace: System.Linq 
Assembly: System.Core (in System.Core.dll) 

而且,由於宣言是一個擴展方法(this IEnumerable<TSource> source),您將不得不使用using語句來引用它,因爲它在不同類型上定義(Enumerable)。

0

你在它的一個實例調用ToList()

myCollection.ToList() 

實現IEnumerable<T>的所有類型的可用擴展方法。

這需要您的cs文件中的using System.Linq,以及對System.Core的引用,這兩個目標在當前版本的VS中默認添加,當定位.net 3.5或更高版本時。

0

將其添加到您的文件的頂部。

using System.Linq; 
0

ToList方法是在System.Linq命名空間中定義的擴展方法,這樣使用起來你必須包括一個using語句System.Linq的方法。一旦你這樣做,它就像yourCollection.ToList()一樣簡單。

5

本文檔有點令人誤解。 Collection<T>類型沒有直接使用此方法。 Intstead它被定義爲System.Linq.Enumerable的擴展方法。添加using指令爲System.Linq應該解決該問題

using System.Linq; 

... 

Collection<T> col = ...; 
List<T> list = col.ToList(); 
0

ToList()是一個擴展方法。你有正確的命名空間(System.Linq)導入和引用?

0

有時一個命令行項目將不必將System.Data.Linq引用它,所以即使你添加一個using語句,你不會得到智能感知或適當編制的項目。即當你喜歡

Datacontext dc = new DataContext(); 
dc.Tablename.W 

,當你開始輸入W使您希望看到「在哪裏」,但你不知道。添加對項目的引用可修復此問題。

打開「引用」文件夾中的項目。查找對System.Data.Linq的引用。如果不存在,右鍵單擊References文件夾,然後選擇「Add Reference ...」,然後單擊.NET選項卡並查找System.Data.Linq,選擇它並點擊OK。一切都應該現在工作。

我用凡作爲一個例子,因爲這是我總是發現它,但ToList()等是一樣的。

相關問題