1. 程式人生 > >巧用Linq分組

巧用Linq分組

如下圖,想根據下面的資料按天求和分組(紅框部分)
這裡寫圖片描述
在後臺取過來用ORM已經轉成了物件陣列,為了避免再去寫麻煩的sql語句(資料量不大,不要求效能),就用了Linq,問題是分組的部分不是時間欄位的全部,只是年月日部分,然後對數值部分進行求和

            var newList = (from t in list
                           orderby t.TradingTime
                           group t by t.TradingTime.ToString("yyyy-MM-dd")
                               into g
                               select new
                               {
                                   BorrowMoney = g.Sum
(p => p.BorrowMoney), LoanMoney = g.Sum(p => p.LoanMoney), TradingTime = g.Key } ).ToList();

以上程式碼就根據年,月,日分組(忽略時分秒),並對個別欄位進行了求和,相較之下比sql語句要來得簡單