Enumerable.GroupBy

最近要針對某複雜資料結構做分群,問題是資料又來自不同的資料供應者,只好先把資料兜成自定義class再使用Enumerable.GroupBy

MSDN的範例較簡單,key用int,被group的資料則是string

若是自定義class可參考stackoverflow Matt Smith建議的寫法,引述寫法如下:
List<smth> list = new List<smth>();
IEnumerable<IGrouping<int, smth>> groups = list.GroupBy(x => x.id);
IEnumerable<smth> smths = groups.SelectMany(group => group);
List<smth> newList = smths.ToList();

又key不用侷限於int,個人試過用資料中的多組欄位組成unique string來分群組亦可!

沒有留言: