web-dev-qa-db-ja.com

要素の辞書にグループ化する

こんにちは、以下に示すように、クラスタイプclass1の要素のリストがあります。それらをどのようにグループ化するか

groupIDに基づくDictionary<int,List<SampleClass>>

class SampleClass
{
   public int groupID;
   public string someData;
 }                                                                                  

私はこのようにしました:

var t =(from data in datas group data by data.groupID into dataGroups select dataGroups).ToDictionary(gdc => gdc.ToList()[0].groupID, gdc => gdc.ToList());

これを行うより良い方法はありますか

39
Subodh Chettri

交換する方がより効率的です:

gdc => gdc.ToList()[0].groupID

と:

gdc => gdc.Key

それ以外は、私がやったように見えます。

または、LINQよりも拡張メソッドに問題がない場合(私は個人的に好みます)、さらに以下の方法で短縮できます。

var t = data.GroupBy(data => data.groupID).ToDictionary(gdc => gdc.Key, gdc => gdc.ToList());
81
DocMax