撰写查询URL字符串

时间:2017-07-31 16:00:21

标签: c#

我正在寻找一种构造来在(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;
}

2 个答案:

答案 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();