C# 通过LINQ从数据表中选择第一行

C# 通过LINQ从数据表中选择第一行,c#,linq,C#,Linq,我有一个如下所示的数据表 A | B ------- 1 | b1 1 | b2 1 | b3 2 | b4 2 | b5 3 | b6 3 | b7 3 | b8 3 | b9 如何编写LINQ命令来选择列a上每个不同值的第一行: A | B --------- 1 | b1 2 | b4 3 | b6 或者使用不同于 或者使用不同于 您需要按列A分组,然后选择B的第一个条目。您可能需要对B列值进行排序 这里有一个代码示例: 您需要按

我有一个如下所示的数据表

A  |  B
-------
1  |  b1
1  |  b2
1  |  b3
2  |  b4
2  |  b5
3  |  b6
3  |  b7
3  |  b8
3  |  b9
如何编写LINQ命令来选择列a上每个不同值的第一行:

A  |  B
---------
1  |  b1
2  |  b4
3  |  b6
或者使用不同于

或者使用不同于


您需要按列A分组,然后选择B的第一个条目。您可能需要对B列值进行排序

这里有一个代码示例:


您需要按列A分组,然后选择B的第一个条目。您可能需要对B列值进行排序

这里有一个代码示例:

如果要从中选择另一个表:

DataTable tblARows = aRows.CopyToDataTable();
如果要从中选择另一个表:

DataTable tblARows = aRows.CopyToDataTable();

GroupBy之前的列表是什么?@Siyavash'list'是包含字段a的对象的集合。在本文中,它是包含字段a和B的表行的集合。哦,我明白了,但我认为在编写代码作为答案时,您需要清楚地提到这一点。这可能会引起误解。GroupBy之前的列表是什么?@Siyavash“list”是包含字段a的对象集合。在这种情况下,它是包含字段a和B的表行集合。哦,我明白了,但我认为在编写代码作为答案时,您需要清楚地提到这一点。这可能会引起误解。如何在此中添加where子句?如何在此中添加where子句?
var dt = new DataTable();
//init your datatable
var dist = dt.Rows.Cast<DataRow>().GroupBy(r=>r.A).Select(g=>g.First()).ToArray();
IEnumerable<DataRow> aRows = table.AsEnumerable()
                                  .GroupBy(r => r.Field<int>("A"))
                                  .Select(g => g.First());
IEnumerable<DataRow> aRows = table.AsEnumerable()
                                  .OrderBy(r => r.Field<String>("B"))
                                  .GroupBy(r => r.Field<int>("A"))
                                  .Select(g => g.First());
DataTable tblARows = aRows.CopyToDataTable();