.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)

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


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

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

12   голосов , оценка 4.583 из 5
Похожие ответы