1

特定のフィールド (id) でアイテムのリストをグループ化し、id とコードのペアの辞書を抽出できるようにしたいと考えています。次に、ID とコードのペアにアクセスして、ロジックを実行する必要があります。linqを使用してこれを行うにはどうすればよいですか?

例えば

Id Code Send
1  500  1 
1  501  0
2  600  1
2  601  0
2  602  0
3  700  0
3  701  1
3  702  0
3  703  1

期待される結果 -

1 500,501
2 600,601,602
3 700, 701, 702, 703

これは私がこれまでに持っているものです-コードだけを辞書に入れる方法を見つけるのに苦労しています:

from i in items 
group i by i.Id into g
select new Dictionary<Guid, List<long>>
   {
     g.Key, g.ToList()
   }
4

3 に答える 3

1

次のように実行できます。

var res = items
    .GroupBy(i => i.Id)
    .ToDictionary(
        g => g.Key
    ,   g => g.Select(v => v.Code).ToList()
    );

あなたのソリューションは近かったです -Codeそれを完成させるために選択を追加する必要がありました。

于 2013-06-20T13:17:10.817 に答える
1

最後の部分

g.ToList() 

する必要があります

g.Select(c => c.Code).ToList()
于 2013-06-20T13:19:30.820 に答える