在C#中获取具有不同行的数据表

时间:2015-01-14 10:00:15

标签: c# linq

我从电子表格中获取数据后返回了一个数据表。我只需要显示结果集,而不同的行只依赖于一列。

例如,我有一个带有列的数据表

id | name | age | email

如果列出了多个具有相同 id 的记录,则应省略。我试过了

dt = dt.DefaultView.ToTable(true)

但它返回所有列的不同记录。我只需要基于id的不同记录。

有人可以帮我吗?

2 个答案:

答案 0 :(得分:4)

您可以使用GroupBy: -

DataTable result = dt.AsEnumerable()
                     .GroupBy(x => x.Field<int>("Id"))
                     .Select(x => x.First()).CopyToDataTable();

请注意,如果匹配Id,我会收到第一条记录并忽略其余记录。

答案 1 :(得分:0)

您需要提及将执行ToTable操作的列名称以选择不同的值。

请在下面的代码部分找到

DataView view = new DataView(table);
DataTable distinctValues = view.ToTable(true, "id");