Дубликат ключа в словаре - PullRequest
       8

Дубликат ключа в словаре

0 голосов
/ 02 декабря 2018

Я пытаюсь заполнить dictionary значениями из двух файлов, первый файл caveConnections заполняет первое значение ключа словаря.второе значение ключа заполняется connectionWeights содержимое файла выглядит следующим образом:

caveConnections

4
4 5
5 6 7
1 5 6
2 3 4
3 4
3

connectionWeights

2
8 3
2 14 5
7 6 11
2 11 6
14 1
1

код, который содержит этовыход выглядит следующим образом:

Graph g = new Graph();
for (int i = 0; i <= totalNumberOfCaves; i++)
{
    string ConnectedCaves = @"D:\UNI\Year 5\AI - SET09122\SET09122 - CW1\WriteConnectedCaves.txt";
    string[] lines = File.ReadAllLines(ConnectedCaves);
    //adds the values to the graph
    for (int k = 0; k < lines.Length; k++)
    {
       string[] ints = lines[i].Split(' ');
       Dictionary<int, int> dict = new Dictionary<int, int>();
       for (int j = 0; j < ints.Length; j++)
       {
            if (!dict.ContainsKey(int.Parse(ints[i].Trim())))
            {
                dict.Add(int.Parse(ints[i].Trim()), int.Parse(connectionweight.Pop()));
            }
        }
        Console.Write(dict);
        g.add_vertex(k+1, dict);
    }
}

насколько я вижу, не должно быть проблемы, но я получаю следующую ошибку при запуске;

Необработанное исключение: Система.ArgumentException: элемент с тем же ключом уже был добавлен.в System.ThrowHelper.ThrowArgumentException (ресурс ExceptionResource) в System.Collections.Generic.Dictionary 2.Insert(TKey key, TValue value, Boolean add) at System.Collections.Generic.Dictionary 2.Add (ключ TKey, значение TValue) в Djikstras_algo.Program.Main (аргументы String []) в D: \ UNI \ Year5 \ AI - SET09122 \ SET09122 - CW1 \ tests \ Djikstras_algo \ Djikstras_algo \ Program.cs: строка 186 Цитата

Я не уверен, почему возникает эта ошибка.если это полезно, полный код проекта можно найти здесь - Djikstras_Project

Любое предложение о том, почему это не работает, было бы замечательно.

Спасибо

...