我有一個字符串列表這樣["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'而不是'List '' –