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

Tom*_*ise -1 c# linq

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

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

id | name | age | email
Run Code Online (Sandbox Code Playgroud)

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

dt = dt.DefaultView.ToTable(true)
Run Code Online (Sandbox Code Playgroud)

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

谁可以帮我这个事?

Rah*_*ngh 5

您可以使用GroupBy:-

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

请注意,在匹配的情况下Id,我将获取第一条记录并忽略其余记录。