C# 在字典中拆分字符串
如何拆分以下字符串C# 在字典中拆分字符串,c#,C#,如何拆分以下字符串 string s = "username=bill&password=mypassword"; Dictionary<string,string> stringd = SplitTheString(s); 请让我知道。谢谢您可以这样填充字典列表: Dictionary<string, string> dictionary = new Dictionary<string, string>(); string s = "userna
string s = "username=bill&password=mypassword";
Dictionary<string,string> stringd = SplitTheString(s);
请让我知道。谢谢您可以这样填充字典列表:
Dictionary<string, string> dictionary = new Dictionary<string, string>();
string s = "username=bill&password=mypassword";
foreach (string x in s.Split('&'))
{
string[] values = x.Split('=');
dictionary.Add(values[0], values[1]);
}
注意:请记住,此函数中没有验证,它假定输入字符串的格式正确我认为类似的功能应该可以工作
public Dictionary<string, string> SplitTheStrings(s) {
var d = new Dictionary<string, string>();
var a = s.Split('&');
foreach(string x in a) {
var b = x.Split('=');
d.Add(b[0], b[1]);
}
return d;
}
公共字典拆分字符串{
var d=新字典();
var a=s.Split('和');
foreach(a中的字符串x){
var b=x.Split('=');
d、 增加(b[0],b[1]);
}
返回d;
}
看起来您正在尝试解析查询字符串-这已经内置,您可以使用:
string input = "username=bill&password=mypassword";
var col = HttpUtility.ParseQueryString(input);
string username = col["username"];
string password = col["password"];
var splitString=“用户名=账单&密码=通行证”;
var splits=新字符[2];
拆分[0]='=';
拆分[1]='&';
var items=splitString.Split(拆分);
var list=newdictionary{{items[1],items[3]};
var username=list.First().Key;
var password=list.First().Value;
这也是我的工作其他答案更好、更容易阅读、更简单、更不容易出现错误等,但另一种解决方案是使用如下正则表达式提取所有键和值:
MatchCollection mc = Regex.Matches("username=bill&password=mypassword&","(.*?)=(.*?)&");
匹配集合中的每个匹配项将有两个组,一个组用于键文本,另一个组用于值文本
我不太擅长正则表达式,因此我不知道如何在不向输入字符串添加尾随“&”的情况下使其匹配…如果键不重复
var dict = s.Split('&').Select( i=>
{
var t = i.Split('=');
return new {Key=t[0], Value=t[1]};}
).ToDictionary(i=>i.Key, i=>i.Value);
如果按键可以重复
string s = "username=bill&password=mypassword";
var dict = s.Split('&').Select( i=>
{
var t = i.Split('=');
return new {Key=t[0], Value=t[1]};}
).ToLookup(i=>i.Key, i=>i.Value);
一个很好的解决方案,但并不像要求的那样是一本字典;-)@缪斯范——然而,这可能是找到字典的最好方法。强类型解析和可以轻松转换为强类型解析的结果集。
MatchCollection mc = Regex.Matches("username=bill&password=mypassword&","(.*?)=(.*?)&");
var dict = s.Split('&').Select( i=>
{
var t = i.Split('=');
return new {Key=t[0], Value=t[1]};}
).ToDictionary(i=>i.Key, i=>i.Value);
string s = "username=bill&password=mypassword";
var dict = s.Split('&').Select( i=>
{
var t = i.Split('=');
return new {Key=t[0], Value=t[1]};}
).ToLookup(i=>i.Key, i=>i.Value);