我在LINQ中非常陌生,并尝试在何处使用条件。
下面是我的代码在没有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数据分开。
答案 0 :(得分:0)
下面的.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();
答案 1 :(得分:0)
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。
如果您需要iEnumerable
中的DataRow
:
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( );