Сгруппировать список элементов с тем же именем и добавить значения, которые возвращают весь столбец - PullRequest
0 голосов
/ 04 июля 2018

У меня есть список предметов из базы данных как:

Category    ItemName    Quantity    Location
Commputing  Mouse         2          store1
Printer Zebra P4T         5         store2Bank5
Commputing  Mouse         4           store1
Printer     ZT zebra      2         store1Bank2
Printer     ZT zebra      1         store1Bank2
FarmTool    FieldBoot     12        Store1Floor2
FarmTool    FieldBoot     12        Store1Floor2

[2], поэтому я хочу получить результат для суммирования элементов с таким же именем, как это:

Category    ItemName    Quantity    Location
Commputing  Mouse         6          store1
Printer Zebra P4T         5         store2Bank5
FarmTool    FieldBoot     24        Store1Floor2
Printer     ZT zebra      3         store1Bank2

У меня есть код:

IEnumerable<Item> items = db.Items;
var da = items
            .GroupBy(d => d.ItemName)
            .Select(g => new {
                Key = g.Key, quantity = g.Sum(s => s.ItemQty),
                Name = g.First().Location,
                ItemName = g.First().ItemName,
                Category = g.First().Category
                })
            .ToList();

return View();

1 Ответ

0 голосов
/ 04 июля 2018

Вы можете попробовать что-то вроде следующего. В основном вы используете в качестве ключа группировки и Category, и ItemName.

IEnumerable<Item> items = db.Items;
var da = items.GroupBy(x=> new { x.Category, x.ItemName })
              .Select(g => new {
                Category = g.Key.Category, 
                ItemName = g.Key.ItemName,
                Quantity = g.Sum(s => s.ItemQty),
                Location = g.First().Location}).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...