SortedList - объединение двух списков с вычислениями - C#

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

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

Есть несколько списков двух типов: A) SortedList<int, int> B) SortedList<int, int> Несколько списков типаA и один список типаB, в котором будет накапливаться информация по остальным спискам; значения ключей в списках типа1 могут совпадать, а могут и нет. В результирующем списке типаB должны быть после обработки собраны ВСЕ ключи и обработанная информация по значениям из списоков типаА. На примере двух списков типаА: 1) (1, 10) (4, 20) (5, 30) 2) (1, 8) (3, 10) (5, 1) (7, 0) Результирующий список типаB должен получиться: (1, 10+8) (3, 10) (4, 20) (5, 30+1) (7, 0) Т.е. должно получиться вроде как объединение списков (Concat?, Join?), но с обработкой по сопадающим ключам. Можно ли это сделать средствами SortedList просто перебрав в цикле все списки типаА? Примечание: на самом деле у меня вместо простого суммирования значений будет более сложная обработка значений. Я её не указал, чтоб не усложнять пример

Решение задачи: «SortedList - объединение двух списков с вычислениями»

textual
Листинг программы
using System;
using System.Collections.Generic;
 
namespace ConsoleApplication17
{
    class Program
    {
        static void Main(string[] args)
        {
            SortedList<int, int> list1=new SortedList<int, int>();
            list1[1]=8;
            list1[2]=9;
            SortedList<int, int> list2 = new SortedList<int, int>();
            list2[1] = 4;
            list2[3] = 2;
 
            SortedList<int, int> result = new SortedList<int, int>();
 
            Append(list1, result);
            Append(list2, result);
        }
 
        private static void Append(SortedList<int, int> list, SortedList<int, int> result)
        {
            foreach (KeyValuePair<int, int> p in list)
            {
                int s = 0;
                result.TryGetValue(p.Key, out s);
                result[p.Key] = s + p.Value;
            }
        }
    }
}

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


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

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

6   голосов , оценка 4.5 из 5
Похожие ответы