所以我有一個字符串,如:創建從一個分號分隔的字符串的字典<字符串,字符串>使用LINQ
"some key:some value; john:doe;age:234"
我已經寫了需要這個字符串,並返回一個方法:
Dictionary<string,string>
很好奇,如果有人可以通過linq做到這一點?
所以我有一個字符串,如:創建從一個分號分隔的字符串的字典<字符串,字符串>使用LINQ
"some key:some value; john:doe;age:234"
我已經寫了需要這個字符串,並返回一個方法:
Dictionary<string,string>
很好奇,如果有人可以通過linq做到這一點?
假設分隔符不能出現在鍵或值:
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()
);
我看不出有任何逗號。 – SLaks
所以它的結腸分開然後。 – codecompleting