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

get the datatable with distinct rows in C#

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

例如我有一个包含列的数据表

id | name | age | email

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

dt = dt.DefaultView.ToTable(true)

但它 returns 与所有列相关的不同记录。我只需要基于 id 的不同记录。

谁能帮我解决这个问题?

您可以使用 GroupBy :-

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

请注意,如果匹配 Id,我将使用第一条记录并忽略其余记录。

您需要提及要执行 ToTable 操作的列名 select 个不同的值。

请在下面找到代码部分

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