Добавить массив в словарь в C # - PullRequest
5 голосов
/ 02 марта 2012

Я попытался прочитать другие посты на эту тему и не могу понять это.

У меня есть список в C #, который я хочу поместить в словарь со всеми теми же ключами.Список такой:

string[] IN ={"Against","Like","Upon","Through","Of","With","Upon","On","Into","From","by","that","In","About","For"
    ,"Along","Before","Beneath","At","Across","beside","After","Though","Among","Toward","If"};

Я хочу создать и заполнить словарь с ключом IN (имя массива), а затем иметь каждую строку для массива в словаре.

Это то, что я написал для создания словаря (что я не уверен, что это правильно):

Dictionary<string, List<string>> wordDictionary = new Dictionary<string, List<string>> ()

Но я не уверен, как заполнить словарь.

Любая помощьБуду очень признателен, так как это первый раз, когда я попытался использовать словарь, и я новичок в C #

Ответы [ 5 ]

13 голосов
/ 02 марта 2012

Массив string[], а не List<string>, поэтому просто сделайте это:

Dictionary<string, string[]> wordDictionary = new Dictionary<string, string[]>();

Теперь вы можете добавить свой массив как обычно.

wordDictionary.Add("IN", IN);

Или:

wordDictionary.Add("IN", new string[] {"Against","Like","Upon","Through","Of","With","Upon","On","Into","From","by","that","In","About","For","Along","Before","Beneath","At","Across","beside","After","Though","Among","Toward","If"});
1 голос
/ 02 марта 2012
Dictionary.Add("IN", new List<string>(IN));

... если вы хотите сохранить текущую подпись для вашего словаря.

Если вы измените его на Dictionary<string, string[]>, вы можете просто:

Dictionary.Add("IN",IN);
1 голос
/ 02 марта 2012

В настоящее время у вас есть строка массив , а не список - так должно быть:

Dictionary<string, string[]> wordDictionary  = new Dictionary<string,string[]> ()

Тогда вы можете просто добавить такие элементы, как:

wordDictionary.Add("IN" , IN);
0 голосов
/ 02 марта 2012

Другой способ добавить массив (это не список) в словарь - использовать инициализатор коллекции:

var wordDictionary = new Dictionary<string, string[]> { "IN", IN };

Это в точности , то же самое, что создать словарь обычным способом и затем вызвать Add("IN", IN).

0 голосов
/ 02 марта 2012

Вам действительно нужно преобразовать ваш массив в строку? Вы могли бы очень хорошо использовать строку [] вместо списка в вашем словаре:

var wordDictionary = new Dictionary<string, string[]>();
wordDictionary.Add("IN", IN);

Но если вы действительно хотите преобразовать ваш строковый массив в List:

var wordDictionary = new Dictionary<string, List<string>>();
wordDictionary.Add("IN", IN.ToList());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...