我在 LINQ 中很新,并尝试按 where 条件分组。
下面是我的代码在没有 where 条件的情况下工作正常。
List<DataTable> result = dt.AsEnumerable()
.GroupBy(x => x.Field<int>("row_Id"))
.Select(grp => grp.CopyToDataTable())
.ToList();
在我的数据表中 dt 获取这些数据。
row_id name
0 Mazhar
0 Raj
1 Khan
1 Ravi
我需要分隔 row_id=0 和 row_id=1 数据。
.下面的 where 子句将过滤 rowId = 0 的结果。
List<DataTable> result = dt.AsEnumerable()
.Where(w => w.Field<int>("row_Id") == 0)
.GroupBy(x => x.Field<int>("row_Id"))
.Select(grp => grp.CopyToDataTable())
.ToList();
var result = dt.Rows.Cast<DataRow>( )
.Select( x => new { ID = x.ItemArray[0], ROW = x } )
.GroupBy( x => (string)x.ID )
.ToList( );
此 LINQ 将 row_id = 0 分隔为 row_id = 1。 如果您需要DataRow
iEnumerable
:
var result0 = result.Where( x => (string)x.Key == "0" ).FirstOrDefault( ).Select( x => x.ROW ).ToList( );
var result1 = result.Where( x => (string)x.Key == "1" ).FirstOrDefault( ).Select( x => x.ROW ).ToList( );