Вы можете заказать предметы и взять первое:
var maxItem = items.OrderByDescending(x => x.Salg * 0.8 + x.Hen * 0.2)
.First();
Выше предполагается, что у вас есть класс со свойствами Salg
и Hen
. Если ваши элементы все еще в формате XML, вам придется использовать метод Element()
для доступа к этим свойствам.
В качестве альтернативы вы можете использовать MaxBy()
из проекта MoreLinq, который будет более эффективным здесь:
var maxItem = items.MaxBy(x => x.Salg * 0.8 + x.Hen * 0.2);
Edit:
В свете обновления - вам нужно сгруппировать данные по имени, суммировать каждую группу и упорядочить по убыванию этой суммы, примерно так:
var bestSalePersons = items.GroupBy(x => x.Name)
.Select(g => new { Name = g.Key, Sum = g.Sum(i => i.Salg * 0.8 + i.Hen * 0.2) })
.OrderByDescending(x => x.Sum)
.Take(5);