2012-02-19 82 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