Я пытаюсь распечатать словарь в C #, который будет имитировать график.Мой словарь выглядит так:
Dictionary<int, List<int>> graph = new Dictionary<int, List<int>>();
В основном я добавляю что-то в словарь, затем пытаюсь распечатать его:
dicOfLists myDic = new dicOfLists();
myDic.AddEdge(1, 2);
myDic.printList();
Методы AddEdge
и PrintList
довольно просты:
AddEdge:
public void AddEdge(int v1, int v2)
{
if (graph[v1] == null)
{
graph[v1] = new List<int> { v2 };
return;
}
graph[v1].Add(v2);
}
PrintList:
for (int i = 0; i < 1; i++)
{
Console.WriteLine(graph[i][i]);
}
Я не много программировал на C # или Python,поэтому словари являются новыми для меня.Я думаю, почему меня сбивают с толку, это более концептуально, чем что-либо еще, особенно потому, что я не уверен, как работает список в словаре.
В настоящее время я понимаю, что это так:
При вызове Addedge(1, 2)
мой словарь создает список с одним элементом 2
в позиции 1
моего словаря.Это потому, что первый параметр представляет ключ словаря, а второй представляет список.Ключевые функции работают как в хеш-таблице.Когда ключ предоставлен, словарь просматривает эту позицию, а затем создает список.
Как я уже сказал, я новичок в C #, поэтому, пожалуйста, не надо слишком сильно вертеть меня.Хотя это может быть что-то тривиальное, как прямая синтаксическая ошибка, я не могу найти много чего-нибудь для этой конкретной проблемы в Интернете.Любая помощь будет принята с благодарностью!