Ну, простой foreach
должен группа пунктов _financials
:
List<Financials> _financials = ...
...
List<List<Financials>> groups = new List<List<Financials>>();
foreach (Financials item in _financials)
if (item.cost != 0 || groups.Count <= 0)
groups.Add(new List<Financials>() {item})
else
groups[groups.Count - 1].Add(item);
Тогда вы можете распечатать groups
out:
using System.Linq;
...
foreach (var group in groups)
Console.WriteLine($"{string.Join(" ", group.Select(item => item.description))} {group.First().cost}");
Если вы хотите превратить groups
в List<Financials>
:
var compressedFinancials = groups
.Select(group => new Financials() {
description = string.Join(" ", group.Select(item => item.description)),
cost = group.First().cost,
})
.ToList();