.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:
Листинг программы
- class Program
- {
- static void Main(string[] args)
- {
- List<Element> ElementList = new List<Element>();
- ElementList = new List<Element>
- {
- new Element() {desc = "Фильтр LTR ",material="Сталь 20",quan=1 },
- new Element() {desc = "Задвижка ",material="Сталь 20",quan=1 },
- new Element() {desc = "Задвижка ",material="Сталь 20",quan=1 },
- };
- var query = ElementList
- .OrderBy(d => d.desc)
- .GroupBy(g => new { g.desc, g.material })
- .Select(group => new
- {
- desc = group.Key.desc,
- mat = group.Key.material,
- Quantity = group.Sum(Q => Q.quan),
- });
- foreach (var item in query)
- {
- Console.WriteLine("{0};{1};{2}",
- item.desc,
- item.mat,
- item.Quantity);
- }
- Console.ReadLine();
- }
- }
- class Element
- {
- public string desc { get; set; }
- public string material { get; set; }
- public int quan { get; set; }
- }
;Клапан;Сталь 20;2
;Задвижка;Сталь 20;1
Помогите собирать имена по аналогу с количество?!
Спасибо Решение задачи: «.NET 3.x Группировка используя LINQ + сумма стрингов»
textual
Листинг программы
- Quantity = group.Sum(Q => Q.quan)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д