0

次のようなDataTableがあります

Agency          | Contact         | Group
Agency1           person1           lunch runners
Agency1           person1           band
Agency1           person3           basketball
Agency2           person4           band

代理店ごとにグループ化し、次に連絡先名ごとにグループ化します。私は linq を 50 通りの方法で使用してみましたが、壁にぶつかりました。誰かが少し光を当てることができますか?ありがとう。

4

3 に答える 3

0
var results = db.<EntityCollection>
    .ToLookup(a => a.Agency)
    .ToDictionary( lu => lu.Key, lu => lu.ToLookup( lui => lui.Contact ) );

その後、次のようにアクセスできます。

results[<agencyName>][<contactName>]
于 2013-10-21T20:06:21.957 に答える
0

collection.GroupBy(x => new { x.Agency, x.Contact })するべきです。これにより、キーに使用される匿名オブジェクトが作成されます。

@TimSchmelter が回答で行っているように、この一般的な考え方を DataTable に適用する必要があることに注意してください。

グループの階層が必要な場合 (つまり、Agency1 グループの内部に person1 グループがある場合)、次のようにします。

collection.GroupBy(x => x.Agency).Select(x => x.GroupBy(y => y.Contact));
于 2013-10-21T19:41:58.607 に答える