У меня есть словарь (строка, десятичный) и вам нужно вычислить сумму всех значений (десятичных значений), начиная со второго элемента. Возможно ли это с помощью LINQ?
Как рассчитать сумму всех значений в словаре, исключая первое значение элемента?
Ответ 1
Очень возможно использование LINQ:
myDict.Skip(1).Sum(x => x.Value);
Однако стандартный Dictionary
класс не гарантирует упорядочение элементов, поэтому "первым" элементом может быть что угодно.
Ответ 2
Почему бы просто не суммировать их все, а затем вычесть первый элемент?
myList.Sum(x => x.Value) - myList.First().Value;
Ответ 3
Пропустить первый элемент таким образом;
dict.Skip(1).Sum(ix => ix.Value);
Ответ 4
Достаточно легко использовать LINQ:
var dict = new Dictionary<string, decimal>();
dict.Add("A", 1.5m); // This value will be skipped
dict.Add("B", 2.7m);
dict.Add("C", 1.3m);
dict.Add("D", 3.9m);
var total = dict.Skip(1).Sum(v => v.Value);
Console.WriteLine(total);