2012-03-02 4 views
3

Я пробовал читать другие сообщения по этому вопросу и не могу это понять.Добавить массив в словарь на C#

У меня есть список на 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#

+1

Действительно ли вы пытаетесь добавить строковый массив «IN» или вы пытаетесь сказать, что хотите добавить имя переменной? Кроме того, это требование кажется плохим способом структурирования вещей ...Бьюсь об заклад, если вы дадите объяснение тому, что вы пытаетесь выполнить, мы можем предложить лучшие решения. –

ответ

8

Массив 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"}); 
+0

Minitech, это сработало большое спасибо! Я думаю, теперь мой вопрос заключается в том, как я могу получить доступ к отдельным строкам в массиве, который находится в словаре? – miltonjbradley

+0

@miltonjbradley: Как и любой другой массив; по индексу ('wordDictionary [" IN "] [0] ==" Against "') или путем циклизации ('foreach (строковое слово в wordDictionary [" IN "])). – Ryan

1

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

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

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

wordDictionary.Add("IN" , IN); 
1
Dictionary.Add("IN", new List<string>(IN)); 

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

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

Dictionary.Add("IN",IN); 
0

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

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

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

var wordDictionary = new Dictionary<string, List<string>>(); 
wordDictionary.Add("IN", IN.ToList()); 
0

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

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

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

Смежные вопросы