2013-09-09 2 views
1

У меня есть строка Number1.pdf:Alpha1.pdf; Number2.pdf:Alpha2.pdf; Number3.pdf:Alpha3.pdf;, и я бы хотел, чтобы она была преобразована в словарь.Преобразовать выделенную строку Colon в словарь <string, string>

Ditionary<Number1,Alpha1> etc. 

Я искал примеры в Интернете, и я нашел, что большинство из них конвертирует словарь в String.Can кто-то мне помогает?

+0

Что-то вроде этого? http://stackoverflow.com/a/1385432/961695 –

+0

Может ли эта строка быть частью более крупной строки JSON? –

ответ

5

Я бы с LINQ:

var input = "Number1.pdf:Alpha1.pdf; Number2.pdf:Alpha2.pdf; Number3.pdf:Alpha3.pdf;"; 

var items = input.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); 
var result = items.Select(x => x.Split(':')) 
        .ToDictionary(x => x[0].Split('.').First().Trim(), 
           x => x[1].Split('.').First().Trim()); 

Он пропустит .pdf в конце обоих ключей и значений (как описано в вопросе).

foreach (var i in result) 
    Console.WriteLine(i); 

печатает

[Number1, Alpha1] 
[Number2, Alpha2] 
[Number3, Alpha3] 
3
string s = "Number1.pdf:Alpha1.pdf; Number2.pdf:Alpha2.pdf; Number3.pdf:Alpha3.pdf;"; 
var names = s.Replace(".pdf","") 
      .Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries) 
      .Select(x => x.Split(':')) 
      .ToDictionary(x => x[0].Trim(), x => x[1]); 
Смежные вопросы