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