如何获取特定数据表列的唯一记录

时间:2012-02-19 14:06:54

标签: c# linq

我有一个从Excel文件导入的DataTable。 我需要的数据仅在DataTable的特定列中是唯一的。 我所说的唯一数据就像在SQL Select Query中使用命令DISTINCT一样。 我想从DataTable列中获取唯一数据列表并将它们放入List中 我认为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 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

您正在寻找的是.Distinct()See MSDN documentation here。如果您需要特定的东西,您可以指定自己的比较器,它只返回唯一的记录。

答案 2 :(得分:0)

如果你有一个Datatable或DataView,为了从列中获取唯一记录,你必须写这个。 这很简单。

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

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