Group By 使用方法
2015年1月8日 星期四
最近遇到一個操作集合物件時,需要做群組的功能,以前都是在SQL裡操作
今天透過Linq的Group By方法來實作,順便記錄一下。
測試資料結構 |
Group By後結果 |
//放入測試資料 var testList = new List(); testList.Add("event1,s11,1"); testList.Add("event1,s12,1"); testList.Add("event1,s13,1"); testList.Add("event1,s14,1"); testList.Add("event1,s15,1"); testList.Add("event2,s21,1"); testList.Add("event2,s22,1"); //處理資料格式 var sourceList = new List >(); foreach (var item in testList) { var querySplit = item.Split(','); string eventId = querySplit[0]; string selectionId = querySplit[1]; string handicap = querySplit[2]; var list = new KeyValuePair (eventId, string.Format("{0}#{1}", selectionId, handicap)); sourceList.Add(list); } //利用Group By 放入Dictionary物件裡 Dictionary > mList = sourceList.GroupBy(p => p.Key,p=>p.Value) .ToDictionary(p => p.Key, p => p.Select(s => s) .ToList());
最後呈現結果如下:
轉換完成後Dictionary的Key就是event,Value就是該Event下的記錄 。
參考來源:http://www.dotblogs.com.tw/lastsecret/archive/2011/02/18/21422.aspx
0 意見:
張貼留言