2011-07-14 151 views

回答

13

假設分隔符不能出現在鍵或值:

var dict = str.Split(';') 
       .Select(s => s.Split(':')) 
       .ToDictionary(a => a[0].Trim(), a => a[1].Trim())); 

這是不這樣做的最快的途徑,但它是最簡單的。

你也可以使用正則表達式:

static readonly Regex parser = new Regex(@"([^:]):([^;])"); 

var dict = parser.GetMatches(str) 
       .Cast<Match>() 
       .ToDictionary(m => m.Groups[0].Value.Trim(), 
           m => m.Groups[0].Value.Trim() 
       ); 
+0

分割(';',StringSplitOptions.RemoveEmptyEntries),並與第二次拆分相同可能有幫助 – hatchet

+0

@Hatchet:是;這將允許尾隨';' – SLaks

相關問題