.NET 3.x Группировка используя LINQ + сумма стрингов - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет!! Хочу реализовать отчетик* в среде 3D моделирования. Есть элемент например с именем 'V1', описанием 'Задвижка' и материалом 'Сталь 20'. Пример этих полей в виде строк а-ля CSV:
;Клапан;Сталь 20;1;V1 ;Клапан;Сталь 20;1;V2 ;Задвижка;Сталь 20;1;V3
Мне нужно получить:
;Клапан;Сталь 20;2;V1,V2 ;Задвижка;Сталь 20;1;V3
Использую код, но не внося имя в класс Element:
Листинг программы
  1. class Program
  2. {
  3. static void Main(string[] args)
  4. {
  5. List<Element> ElementList = new List<Element>();
  6. ElementList = new List<Element>
  7. {
  8. new Element() {desc = "Фильтр LTR ",material="Сталь 20",quan=1 },
  9. new Element() {desc = "Задвижка ",material="Сталь 20",quan=1 },
  10. new Element() {desc = "Задвижка ",material="Сталь 20",quan=1 },
  11. };
  12. var query = ElementList
  13. .OrderBy(d => d.desc)
  14. .GroupBy(g => new { g.desc, g.material })
  15. .Select(group => new
  16. {
  17. desc = group.Key.desc,
  18. mat = group.Key.material,
  19. Quantity = group.Sum(Q => Q.quan),
  20. });
  21. foreach (var item in query)
  22. {
  23. Console.WriteLine("{0};{1};{2}",
  24. item.desc,
  25. item.mat,
  26. item.Quantity);
  27. }
  28. Console.ReadLine();
  29. }
  30. }
  31. class Element
  32. {
  33. public string desc { get; set; }
  34. public string material { get; set; }
  35. public int quan { get; set; }
  36. }
Все группирует и сортирует, количество пишет одинаковых элементов, если без имени.
;Клапан;Сталь 20;2 ;Задвижка;Сталь 20;1
Помогите собирать имена по аналогу с количество?! Спасибо

Решение задачи: «.NET 3.x Группировка используя LINQ + сумма стрингов»

textual
Листинг программы
  1. Quantity = group.Sum(Q => Q.quan)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.583 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы