1. 程式人生 > >C#DataTable 使用GroupBy方法的lamda 表示式和Linq語句寫法

C#DataTable 使用GroupBy方法的lamda 表示式和Linq語句寫法

DataTable ds = new DataTable();

//1、lamda 表示式寫法(推薦) 
var result = ds.AsEnumerable().GroupBy(s => new{Year = s.Field<int>("Year"), Month = s.Field<int>("Month"), Day = s.Field<int>("Day")});

//2、Linq寫法 最終編譯器會把它轉化為lamda表示式 
//var result = from s in ds.Tables[0].AsEnumerable()
             group s by new { Year = s.Field<int>("Year"), Month = s.Field<int>("Month"), Day = s.Field<int>("Day") } into temp

            select temp;

 

//DataTable 使用GroupBy方法需要注意result為IGrouping<int,DataRow>型別
foreach (var thisGroup in result)
        {
            foreach (var row in thisGroup)
            {
                //遍歷當前這組的所有row
            }
        }