У меня есть список строк, как это ["saman=1", "kaman=2"]
Как я могу преобразовать это в словарь как {Saman:1 , kaman:2}
конвертировать список строк словаря
strList.Select(k,v =>new {k,v} , k=> k.split('=')[0], val => v.split('=')[1]);
У меня есть список строк, как это ["saman=1", "kaman=2"]
Как я могу преобразовать это в словарь как {Saman:1 , kaman:2}
конвертировать список строк словаря
strList.Select(k,v =>new {k,v} , k=> k.split('=')[0], val => v.split('=')[1]);
Это должно работать:
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]))
Сначала вы должны разделить на ", "
, а затем разделить каждый элемент на =
, чтобы получить пары ключ/значение.
Дополнительный 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]);
Очень, очень просто с помощью LINQ:
IDictionary<string, string> dictionary =
list.ToDictionary(pair => pair.Key, pair => pair.Value);
Обратите внимание, что это не сработает, если есть какие-либо дубликаты ключей - Я полагаю, что это нормально?
это не сработает. Поскольку у него есть «Список' не 'List ' –