LINQ 使用 C# asp.net 在数据表中按位置条件分组



我在 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。 如果您需要DataRowiEnumerable

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( );

最新更新