こんにちは、以下に示すように、クラスタイプ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());
これを行うより良い方法はありますか
交換する方がより効率的です:
gdc => gdc.ToList()[0].groupID
と:
gdc => gdc.Key
それ以外は、私がやったように見えます。
または、LINQよりも拡張メソッドに問題がない場合(私は個人的に好みます)、さらに以下の方法で短縮できます。
var t = data.GroupBy(data => data.groupID).ToDictionary(gdc => gdc.Key, gdc => gdc.ToList());