У меня есть словарь со следующим определением.
Dictionary<int[], int> D = new Dictionary<int[], int>();
где ключ представляет собой массив из 3 элементов. Я привожу это как пример, чтобы упростить мой сценарий. (В моем собственном коде ключ представляет собой сложный объект класса, который имеет список из 3-7 элементов для ключа.)
int[] key;
key = new int[] { 1, 1, 1 };
D.Add(key, 1);
key = new int[] { 1, 1, 2 };
D.Add(key, 2);
key = new int[] { 1, 1, 3 };
D.Add(key, 3);
key = new int[] { 1, 2, 4 };
D.Add(key, 4);
key = new int[] { 2, 1, 1 };
D.Add(key, 5);
key = new int[] { 2, 5, 1 };
D.Add(key, 6);
Я хочу иметь средство для уменьшения количества ключей, т.е. вместо массива из трех элементов я хочу, чтобы в качестве ключа использовался массив из 2 элементов, и чтобы все избыточные значения были объединены в одно значение, чтобы результирующие пары KeyValue выглядели следующим образом. (уменьшение первого индекса для ключей)
{1 1, 6} //two instances of matching key of {1 1} resulted the value to have 1+5 =6
{1 2, 2}
{1 3, 3}
{2 4, 4}
{5 1, 6}
1+5
, а не1+2+3
? почему1 2, 2
, а не1 2, 4
? откуда взялись ключи2 4
и5 1
? это не имеет для меня никакого смысла. - person BartoszKP   schedule 21.10.2013