Разбить массив - C#

Узнай цену своей работы

Формулировка задачи:

Есть Dictionary: 2009-01 - 304 2009-02 - 152 2009-03 - 82 2009-04 - 70 2009-05 - 82 2009-06 - 120 2009-07 - 32 2009-08 - 45 2009-09 - 75 2009-10 - 77 2009-11 - 25 2009-12 - 152 2010-01 - 304 2010-02 - 152 2010-03 - 82 2010-04 - 70 2010-05 - 82 2010-06 - 120 2010-07 - 32 2010-08 - 45 2010-09 - 75 2010-10 - 77 2010-11 - 25 2010-12 - 152 2011-01 - 304 2011-02 - 152 надо разбить его на части.. тоесть сформировать новый массив из значений суммы за 3 месяца.. тоесть получится так: 2009 01-03 - 538 2009 04-06 - 272 2009 07-09 - 152 2009 10-12 - 254 ... и т.д Помогите ребята! думал использовать какой-нибудь из методов Enumerable.GroupBy только не могу придумать как там правильно сказать чтобы он группировал по 3 элемента..

Решение задачи: «Разбить массив»

textual
Листинг программы
// Получаем номер квартала (0 ... 3) из номера месяца
(int.Parse(kvp.Key.Substring(5))-1)/3
 
// Формируем ключ в виде "год квартал"
kvp => kvp.Key.Substring(0,4) + " " + names[(int.Parse(kvp.Key.Substring(5))-1)/3]
 
// Группируем значения по кварталу и году
GroupBy(kvp => kvp.Key.Substring(0,4) + " " + names[(int.Parse(kvp.Key.Substring(5))-1)/3], kvp => kvp.Value)
 
// Формируем словарь где ключом является ключ группировки (в виде "год квартал"), а значением сумма величин
.ToDictionary(g => g.Key, g => g.Sum());

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4 из 5