在 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");
我从电子表格中获取数据后返回了一个数据表。我只需要显示结果集,其中不同的行仅取决于一列。
例如我有一个包含列的数据表
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");