我的应用程序需要使用字符串:
"????infoResponse\n\\voip\\1\\g_humanplayers\\1\\g_needpass\\0\\pure\\1\\gametype\\0\\sv_maxclients\\8\\clients\\1\\mapname\\oa_rpg3dm2\\hostname\\test\\protocol\\71"
我正在寻找从此字符串创建dictionary<string,string>
的最快解决方案
其中第一个字符串是键,下一个是值。
我试试
teststring.Split(new string[] { "\\" }, StringSplitOptions.None);
但不知道如何转换数组ToDictionary
现在我有:
[0]: "voip"
[1]: "1"
[2]: "g_humanplayers"
[3]: "1"
[4]: "g_needpass"
[5]: "0"
[6]: "pure"
[7]: "1"
[8]: "gametype"
[9]: "0"
[10]: "sv_maxclients"
[11]: "8"
[12]: "clients"
[13]: "1"
[14]: "mapname"
[15]: "oa_rpg3dm2"
[16]: "hostname"
[17]: "test"
[18]: "protocol"
[19]: "71"
但我需要键和值对:
voip -> 1
g_humanplayers ->1
g_needpass -> 0
如何将字符串标记为键和值对?
答案 0 :(得分:2)
这是你的字符串。
string str="????infoResponse\n\\voip\\1\\g_humanplayers\\1\\g_needpass\\0\\pure\\1\\gametype\\0\\sv_maxclients\\8\\clients\\1\\mapname\\oa_rpg3dm2\\hostname\\test\\protocol\\71";
这会将所有值和键分成一个列表
var list1= str.Split(new[] { "\\" }, StringSplitOptions.RemoveEmptyEntries);
这将创建一对字典键和值
var list2 = list1
.Select((s, i) => new { s, i })
.GroupBy(x => x.i / 2)
.ToDictionary(g => g.First().s, g => g.Last().s);
输出
var g_humanplayers = list2["g_humanplayers"].ToString();
var g_needpass = list2["g_needpass"].ToString();
g_humanplayers存储值1
g_needpass商店值0