В настоящее время у меня есть List<OrderModel>
.OrderModel
- это класс, который содержит два свойства: OrderId
и Total
.В этом случае OrderId
НЕ является уникальным.Я хочу объединить значения свойства Total
, где OrderId
соответствует.
У меня есть решение, но я хочу знать, есть ли лучший способ (если говорить с точки зрения производительности) для достижения этой целизадача.Вот что я сейчас делаю:
Когда я заполняю свой List<OrderModel>
объект, я также добавляю OrderId
к List<long>
.Итак, теперь у меня есть два списка.
foreach (var id in orderIdList.Distinct())
{
var orders = orderModelList.Where(l => l.OrderId == id).ToList();
if (orders.Count() > 1)
{
var firstOrder = orders.FirstOrDefault();
orders.Remove(firstOrder);
foreach (var order in orders)
{
firstOrder.Total += order.Total;
orderModelList.Remove(order);
}
}
}