2012-02-19 85 views
1

我有從Excel文件導入的DataTable。 我需要的數據只是從DataTable的特定列中唯一的。 我指的唯一數據就像在SQL Select Query中使用命令DISTINCT時一樣。 我想從DataTable列中獲取唯一數據的列表,並將它們放入列表中 我認爲LinQ可以用於這個問題,但我不太熟悉它。 我就是這樣想的代碼下面如何獲取數據表的特定列的唯一記錄

var data is from MyDataTable 
    where MyDataTable.ColumnName = "SpecificColumn" 
    select MyDataTable["SpecificColumn"]).UniqueData; 

List<string> MyUniqueData = new List<string>(); 

foreach(object obj in data) 
{ 
    if(MyUniqueData.NotContain(obj)) 
    MyUniqueData.add(obj); 
} 

我希望有知識的人可以下車給我。

回答

3
var unique = data.Distinct().ToList(); 
1

您要尋找的是.Distinct()See MSDN documentation here。你可以指定你自己的比較器,如果你需要特定的東西,它將只返回唯一的記錄。

0

如果你有一個Datatable或DataView,爲了從一列中獲取唯一的記錄,你必須寫這個。 這會很簡單。

DataTable dtNew = dt.DefaultView.ToTable(true, "ColName"); // for Datatable 

DataTable dtnew= dv.ToTable(true, "ColName"); // for DataView