Я пытаюсь создать и заполнить словарь, содержащий список как его значение; т.е.Добавление списков в словарь вложенного списка
Dictionary <string, List<string>> DictionaryA = new Dictionary<string,List<string>>();
Значения в словаре затем будут выводиться в электронную таблицу Excel.
Проблема возникает, когда я пытаюсь вводить списки в словарь под ключом. Первое назначение словаря прекрасное, например, список из 10 строк под ключом «Key1».
Dictionary <string, List<string>> DictionaryA = new Dictionary<string, List<string>>();
int i = 0;
while(page.MoveNext()) //For example, for each page in a book
{
while(words.MoveNext()) //For example, words in the page
{
if(!(ListA.Contains(ValueA)) //For example, we are looking to store instances of each word in each page of a book
{
ListA.Add(ValueA);
}
DictionaryA.Add(i, ListA);
i++;
}
sortedList = DictionaryA.Keys.ToList(); //Let's say we want to sort the Dictionary as well
sortedList.Sort()
foreach (var key in sortedList)
{
DictionaryASorted.Add(key, DictionaryA[key]);
}
ExcelOuput(DictionaryASorted); //Function to export and save an Excel File
}
Таким образом, первый прогон через page.Movenext() цикл хорошо, словарь правильно заполнен список. Однако при втором прохождении цикла в список «ListA» добавляется любая уникальная «ValueA» - это изменяет «ListA», который уже хранится в словаре. Конечным результатом является словарь, который содержит разные номера страниц в качестве ключей и тот же самый огромный список слов для каждого из этих ключей.
Если я использую ListA.Clear()
в начале каждого цикла страниц, список заканчивается словами из последней прочитанной страницы и ничего больше.
Как использовать этот вложенный список без изменения предыдущего списка? Я пытаюсь сделать это правильно? Или есть лучшее, более элегантное решение?
Это именно то, что мне нужно, спасибо большое! Почему я этого раньше не видел ?! Г! – Eomo
@Eomo Classic выпуск. Не чувствую себя плохо. Трудно сказать, когда переменная передается по значению или по ссылке, когда вы добавляете ее к другому объекту. – Vulcronos