我想在我的查询字符串中存储所有键/值对:
www.example.com/?a=2&b=3&c=34
进入字典。有没有快速的方法来做这个而不必手动循环所有的项目?
答案 0 :(得分:13)
尝试HttpUtility.ParseQueryString()
。
它会为您提供NameValueCollection
个键和值。
答案 1 :(得分:0)
获取问号后找到的字符串,将字符串拆分为“&”字符。 然后,对于要返回的每个字符串,再次在'='字符上拆分。
你甚至可以为它创建一个扩展方法。
public static class StringExtensions
{
public Dictionary<string, string> ExtractQueryStringValues( this string target )
{
string queryString = target.Split (target.IndexOf ('?') + 1);
string[] keyvaluePairs = queryString.Split ('&');
Dictionary<string, string> result = new Dictionary<string, string>();
foreach( string pair in keyvaluePairs )
{
var tmp = pair.Split ('=');
result.Add (tmp[0], tmp[1]);
}
return result;
}
}
这样的事情。 请记住,它不安全,因为它不处理每个边缘情况。 (例如,给定一个在第一个问号之后没有任何内容的字符串等等),但它应该让你开始。