目前,我正在使用各种 if 语句和子字符串来操作查询字符串参数,并想知道是否有更有效的方法。
准确地说 - 我需要向当前 url 添加一个查询字符串参数,但如果它已经存在 - 我只需要修改它。
澄清一下 - 我可以使用标准的字符串操作方法来实现这一点,并且我知道如何检索当前的 url 等。我只是想知道这些轮子是否已经到位并且我正在重新发明它们。
目前,我正在使用各种 if 语句和子字符串来操作查询字符串参数,并想知道是否有更有效的方法。
准确地说 - 我需要向当前 url 添加一个查询字符串参数,但如果它已经存在 - 我只需要修改它。
澄清一下 - 我可以使用标准的字符串操作方法来实现这一点,并且我知道如何检索当前的 url 等。我只是想知道这些轮子是否已经到位并且我正在重新发明它们。
HttpUtility.ParseQueryString(queryString);
更多信息:http: //msdn.microsoft.com/en-us/library/system.web.httputility.parsequerystring.aspx
可能您正在寻找HttpUtility.ParseQueryString()。
您可以将查询字符串解析为 aDictionary<string,string>
并使用它来操作,然后在再次输出为查询字符串时简单地格式化键值对:
public Dictionary<string, string> ToDictionary(string queryString)
{
return queryString.TrimStart('?').Split('&').Select(qp => qp.Split(',')).ToDictionary(a => a[0], a=> a[1]);
}
public Dictionary<string, string> ToString(Dictionary<string, string> queryString)
{
return '?' + string.Join('&', queryString.Select(kvp => kvp.Key + '=' + kvp.Value));
}