4

リスト<DTO>があり、DTOクラスは次のようになります。

 private class DTO
    {
        public string Name { get; set; }
        public int Count { get; set; }
    }

オブジェクトを作成してリストに追加します。

var dto1 = new DTO { Name = "test", Count = 2 };
var dto2 = new DTO { Name = "test", Count = 3 };
var dtoCollection = new List<DTO> {dto1, dto2};

ここでの要件は、キーがNameフィールドで、値がSumofCountフィールドであるdtoCollectionからディクショナリを作成する必要があることです。

たとえば、上記のdtoCollectionをDictionaryに変換すると、エントリは次のようになります。

キー="テスト"、値= "5"

ここで、Valueは、 Nameフィールドが同じであるCountフィールドを合計することで取得されます。

4

2 に答える 2

12

私はこれがあなたが必要とすることをするだろうと思います:

dtoCollection.GroupBy(x => x.Name).ToDictionary(x => x.Key, x => x.Sum(y => y.Count))
于 2012-11-14T11:30:04.177 に答える
1

以下はlinqクエリです

var dict = dtoCollection.GroupBy(x=>x.Name).ToDictionary(x=>x.Key, x=>x.Select(y=>y.Count).Sum());
于 2012-11-14T11:31:37.010 に答える