2014-03-12 6 views

ответ

5

Это должно работать:

strList.ToDictionary(x => x.Split('=')[0], x => x.Split('=')[1]) 

Если вы хотите Dictionary<string, int> вы можете разобрать Value на целое число:

strList.ToDictionary(x => x.Split('=')[0], x => int.Parse(x.Split('=')[1])) 
1

Сначала вы должны разделить на ", ", а затем разделить каждый элемент на =, чтобы получить пары ключ/значение.

Дополнительный Trim звонок будет удален из [" в начале и "] в конце вашей строки ввода.

var input = @"[""saman=1"", ""kaman=2""]"; 

var dict = input.Trim('[', '"', ']') 
       .Split(new [] {@""", """}, StringSplitOptions.RemoveEmptyEntries) 
       .Select(x => x.Split('=')) 
       .ToDictionary(x => x[0], x => x[1]); 
0

Очень, очень просто с помощью LINQ:

IDictionary<string, string> dictionary = 
    list.ToDictionary(pair => pair.Key, pair => pair.Value); 

Обратите внимание, что это не сработает, если есть какие-либо дубликаты ключей - Я полагаю, что это нормально?

+0

это не сработает. Поскольку у него есть «Список ' не 'List ' –

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