1

繰り返し値を持つオブジェクトのコレクションがあります。オブジェクトは次のとおりです。

public InvoiceCompany
{
    public decimal InvoiceValue { get; set; }
    public string Company { get; set; }
}

リストコレクションの各会社に複数の請求書があります。コレクション内のオブジェクト、個別の会社をマージし、同時に InvoiceValues を追加するにはどうすればよいですか? Linqでやってみたい!

4

3 に答える 3

6

使用GroupBy:

var list = new List<InvoiceCompany>(); //your collection of invoices
var grouped = list.GroupBy(x => x.Company)
                  .Select(g => new InvoiceCompany { Company = g.Key, InvoiceValue = g.Sum(x => x.InvoiceValue) });
于 2013-05-29T10:13:55.563 に答える
2

group by ステートメントを使用できます。

List<InvoiceCompany> li = new List<InvoiceCompany>(){
     new InvoiceCompany { Company = "a", InvoiceValue = 1 },
     new InvoiceCompany { Company = "a", InvoiceValue = 2 },
     new InvoiceCompany { Company = "b", InvoiceValue = 1 },
     new InvoiceCompany { Company = "b", InvoiceValue = 2 }
};

var v = from a in li
        group a.InvoiceValue by a.Company into b
        select new { Company = b.Key, Invoices = b.ToList().Sum() };
于 2013-05-29T10:15:14.350 に答える
0

会社ごとに InvoiceValue をグループ化し、合計を計算してみてください。

var v =
from l in list
group l.InvoiceValue by l.Company
into g
select new InvoiceCompany()
{
    Company = g.Key,
    InvoiceValue = g.Sum()
};
于 2013-05-29T10:24:42.103 に答える