我正在寻找一种构造来在(C#)中构建一个方法,用于构建一个基于字典列表的查询URL。我构建的解决方案与我想要的输出不匹配。我有更好的想法吗?
public string querystring()
{
//start with ?
var startPosition = string.Join("?", availiblebalance.FirstOrDefault().Key + "=" + availiblebalance.FirstOrDefault().Value);
//var removeElement = startPosition.Split('='); availiblebalance.Remove(removeElement[0]);
var otherPostions = string.Join("&", availiblebalance.Select(x => x.Key + "=" + x.Value).ToArray());
var result = string.Format("{0}{1}", startPosition,otherPostions);
return result;
}
答案 0 :(得分:2)
从字典构建查询字符串应该相当简单 - 您不需要单独处理起始位置和其余参数。
var queryString = "?" + String.Join("&",
myDictionary.Select(kv => String.Concat(kv.Key,"=",kv.Value)));
您可能需要UrlEncode
值,具体取决于它们包含的值。
答案 1 :(得分:0)
有HttpUtility
允许您构建查询字符串。
var queryString = System.Web.HttpUtility.ParseQueryString(string.Empty);
foreach (var entry in myDictionary)
queryString[entry.Key] = entry.Value;
return "?" + queryString.ToString();