2013-02-15 1 views
0

У меня есть общий список List<String, String> ListNameДобавление Элементы общего списка в словарь

Я пытаюсь вставить значения в списке, в словарь Dictionary<String, int>

Я смотрел на местах, но можно найти только добавление элементов словаря к списку. Хотя мои требования противоположны. Я попытался использовать toDictionary, но он не работал для меня. Не уверен, что пошло не так.

У кого-нибудь все попытки вставить значения из списка в словарь?

+0

Пожалуйста, покажите код. –

+2

Какой 'List' принимает два параметра типа? Откуда берется «int»? –

+0

Список является общим и читает файл, который содержит три поля, а один из них - int. поэтому попробуйте использовать столбец строки и столбец int как ключ и значение. – SonalKhodiyar

ответ

0

Я не знаю точно, где целое приходит, но что-то, как это должно работать:

Dictionary<string, int> dict = new Dictionary<string, int>(); 
list.ForEach(x => dict.Add(x, theInteger)); 
2

Я предполагаю, что вы имеете в виду List<string[]>, потому что я никогда не видел родовое List<T,WhoAmI> перед

If вы используете List<string[]> вы можете использовать функцию ToDictionary

List<string[]> ListName = new List<string[]>(); 
ListName.Add(new[] { "Stack", "1" }); 
ListName.Add(new[] { "Overflow", "2" }); 

// Select the first string([0]) as the key, and parse the 2nd([1]) as int 
Dictionary<string,int> result = ListName.ToDictionary(key => key[0], value => int.Parse(value[1])); 

, если вы используете какое-то Касты Объект ом в списке вы также можете сделать это так же

List<MyObject<string, string>> ListName = new List<MyObject<string, string>>(); 
Dictionary<string, int> result = ListName.ToDictionary(key => key.String1, value => int.Parse(value.String2)); 


public class MyObject<T, U> 
{ 
    public MyObject(T string1, U string2) 
    { 
     String1 = string1; 
     String2 = string2; 
    } 

    public T String1 { get; set; } 
    public U String2 { get; set; } 
} 

Примечание: Вы должны добавить проверку ошибок вокруг int.Parse или использовать Int.TryParse, если есть шанс, что это не может быть числом.

+0

мой код в значительной степени похож на sa_ddam213 Список > ListName = new List >(); Словарь result = ListName.ToDictionary (key => key.String1, value => int.Parse (значение.String2)); общественного класса MyObject { общественного MyObject (Т строка1, U строка2, Int v) { Строка1 = строка1; String2 = string2; } public T String1 {get; задавать; } public U String2 {get; задавать; } } – SonalKhodiyar

0

Вы можете использовать так:

List<KeyValuePair<String, String>> ListName = new List<KeyValuePair<String, String>>(); 
Dictionary<String, Int32> dict = new Dictionary<String, Int32>(); 
ListName.ForEach(e=> dict.Add(e.key, Int32.Parse(e.Value))); 
Смежные вопросы