C# 从datatable中选择具有不同列值的行

C# 从datatable中选择具有不同列值的行,c#,datatable,C#,Datatable,我有一个具有重复ID的数据表 1 data moredata 4354 1 data moredata 4354 2 data moredaaata 4asdfdsa4 3 dasata edaaata 42342fdsa4 2 data moredaaata 4asdfdsa4 我想从该表中获得一个datatable,第一列值的每一行如下:(不需要按顺序排列) 如何执行此操作?您可以使用LINQ查询数据表。在ID字段中使用分组依据,然后从结果集中选择First。类似于 var qu

我有一个具有重复ID的数据表

1 data moredata  4354
1 data moredata  4354
2 data moredaaata  4asdfdsa4
3 dasata edaaata  42342fdsa4
2 data moredaaata  4asdfdsa4
我想从该表中获得一个datatable,第一列值的每一行如下:(不需要按顺序排列)


如何执行此操作?

您可以使用LINQ查询数据表。在
ID
字段中使用分组依据,然后从结果集中选择
First
。类似于

var query = from t in dt.AsEnumerable()
            group t by t.Field<int>("ID") into g
            select g.First();
var query=从dt.AsEnumerable()中的t开始
按t字段(“ID”)将t分组为g
选择g.First();

您可以使用LINQ查询数据表。在
ID
字段中使用分组依据,然后从结果集中选择
First
。类似于

var query = from t in dt.AsEnumerable()
            group t by t.Field<int>("ID") into g
            select g.First();
var query=从dt.AsEnumerable()中的t开始
按t字段(“ID”)将t分组为g
选择g.First();

选择不同的第1列,第2列 来自表1
其中……

选择不同的第1列,第2列
List<string> tableColumns = new List<string>();
foreach (DataColumn column in currentTable.Columns)
    tableColumns.Add(column.ColumnName);
DataTable result = currentTable.DefaultView.ToTable(true, tableColumns.ToArray());
来自表1 其中;
List<string> tableColumns = new List<string>();
foreach (DataColumn column in currentTable.Columns)
    tableColumns.Add(column.ColumnName);
DataTable result = currentTable.DefaultView.ToTable(true, tableColumns.ToArray());
foreach(currentTable.Columns中的DataColumn列) tableColumns.Add(column.ColumnName); DataTable结果=currentTable.DefaultView.ToTable(true,tableColumns.ToArray());
List tableColumns=new List();
foreach(currentTable.Columns中的DataColumn列)
tableColumns.Add(column.ColumnName);
DataTable结果=currentTable.DefaultView.ToTable(true,tableColumns.ToArray());

您是否可以控制返回数据的查询?我认为对您使用的任何查询选择
DISTINCT
会更有意义。@CSharpDev,DISTINCT将对所有列起作用,对于示例数据,它将起作用,但在
1 data moredata 5555
上可能失败,在这种情况下,它将返回两行ID为的数据1@LittleBobbyTables它不是来自SQL的,我不能控制我得到的结果。你能控制返回数据的查询吗?我认为对您使用的任何查询选择
DISTINCT
会更有意义。@CSharpDev,DISTINCT将对所有列起作用,对于示例数据,它将起作用,但在
1 data moredata 5555
上可能失败,在这种情况下,它将返回两行ID为的数据1@LittleBobbyTables它不是来自SQL的,我无法控制我得到的结果。我们需要答案上的LINQFTW标签。我们需要答案上的LINQFTW标签。我认为这更可能是他在寻找的。很好地使用了泛型组合,这应该允许任何用户根据需要指定数组。我认为这更可能是他正在寻找的。良好使用泛型组合,允许任何用户根据需要指定数组。