2017-07-31 16 views
0

辞書リストに基づいてクエリURLを作成するための(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; 
} 
+1

「私が構築したソリューションは、私が望む出力とは一致しませんでした」 - あなたが望むものを教えてください! – Jamiec

+0

この回答は役に立ちましたか? https://stackoverflow.com/questions/829080/how-to-build-a-query-string-for-a-url-in-c またはこの記事http://www.java2s.com/Code/ CSharp/Network/DictionaryToQueryString.htm – Darren

+0

'HttpUtility.UrlEncode'が不足していると思われます –

答えて

2

辞書からクエリ文字列を作成するのはかなり簡単です。開始位置と残りのパラメータを別々に扱う必要はありません。

var queryString = "?" + String.Join("&", 
      myDictionary.Select(kv => String.Concat(kv.Key,"=",kv.Value))); 

値には値が含まれている場合がありますが、値はUrlEncodeです。

0

クエリ文字列を作成できるようにするHttpUtilityがあります。

var queryString = System.Web.HttpUtility.ParseQueryString(string.Empty); 
foreach (var entry in myDictionary) 
    queryString[entry.Key] = entry.Value; 

return "?" + queryString.ToString(); 
関連する問題