Подтвердить что ты не робот

Как рассчитать сумму всех значений в словаре, исключая первое значение элемента?

У меня есть словарь (строка, десятичный) и вам нужно вычислить сумму всех значений (десятичных значений), начиная со второго элемента. Возможно ли это с помощью LINQ?

4b9b3361

Ответ 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);