Учитывая следующую структуру ...
class Foo {
public string Category { get; set; }
public string Code { get; set; }
public int Quantity { get; set; }
}
Я пытаюсь использовать Linq для суммирования списка этих объектов по категориям и коду, чтобы, если я предоставлю следующий источник ...
List<Foo> foos = new List<Foo>() {
new Foo {Category = @"A", Code = @"B", Quantity = 1},
new Foo {Category = @"A", Code = @"B", Quantity = 2},
new Foo {Category = @"C", Code = @"D", Quantity = 3},
new Foo {Category = @"C", Code = @"D", Quantity = 4}
};
Я получаю список, содержащий ...
Foo {Category = @"A", Code = @"B", Quantity = 3},
Foo {Category = @"C", Code = @"D", Quantity = 7}
(где Количество - сумма исходных количеств совпадающих объектов).
Я знаю, что мне нужно использовать комбинацию из предложения group by
и методов расширения Sum()
, но я просто не могу найти правильную комбинацию.
Обратите внимание, что за этим списком нет базы данных, я делаю это исключительно с объектами, поэтому извлечение исходного списка, включая сумму, не вариант.
Спасибо.