2014-03-12 215 views
0

我有一個字符串列表這樣["saman=1", "kaman=2"] 我如何可以將其轉換爲一個字典一樣{Saman:1 , kaman:2}轉換字符串列表字典

strList.Select(k,v =>new {k,v} , k=> k.split('=')[0], val => v.split('=')[1]); 

回答

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 '而不是'List '' –