使用LINQ将字符串拆分为哈希表

Sac*_*til 0 c# linq vb.net

我有:

string s = "A=1,B=2,C=3";
Run Code Online (Sandbox Code Playgroud)

我需要使用LINQ在哈希表中输出.

Hastable应填写为

["A"] | 1

["B"] | 2

["C"] | 3
Run Code Online (Sandbox Code Playgroud)

Dan*_*rth 6

您可以使用此代码:

var dict = s.Split(',')
            .ToDictionary(x => x.Split('=').First(),
                          x => int.Parse(x.Split('=')[1]));
Run Code Online (Sandbox Code Playgroud)

请注意,如果输入字符串的格式不正确,则此代码会中断.此外,它使用强类型和首选Dictionary<TKey, TValue>而不是Hashtable.

更新:

要避免在创建字典时拆分两次,可以使用以下代码:

var dict = s.Split(',')
            .Select(x => x.Split('='))
            .ToDictionary(x => x[0],
                          x => int.Parse(x[1]));
Run Code Online (Sandbox Code Playgroud)