Reputation: 66006
public static string DictToQueryString(Dictionary<string, string> data)
{
string querystring = "";
foreach (string key, string val in data)
querystring += key + "=" + val + "&";
return querystring;
}
How i foreach?
Upvotes: 1
Views: 1947
Reputation: 241711
Your "code" would have an extraneous "&"
on the end. Do you want this? It's likely that you don't want this but please correct if you do. Assuming not, the simplest approach is to let String.Join
do its job:
public static string DictToQueryString(Dictionary<string, string> data) {
return String.Join(
"&",
data.Select(kvp => String.Format("{0}={1}", kvp.Key, kvp.Value))
.ToArray()
);
In C# 4.0 the call to ToArray
will be obviated.
Upvotes: 3
Reputation: 103527
Like this:
public static string DictToQueryString(Dictionary<string, string> data)
{
StringBuilder queryString = new StringBuilder();
foreach(var pair in data)
{
if (queryString.Length > 0)
queryString.AppendFormat("&{0}={1}", pair.Key, pair.Value);
else
queryString.AppendFormat("{0}={1}", pair.Key, pair.Value);
}
return queryString.ToString();
}
Upvotes: 3
Reputation: 26863
I believe this is what you're looking for?
public static string DictToQueryString(Dictionary<string, string> data)
{
string querystring = "";
foreach (string key in data.Keys)
{
string val = data[key];
querystring += key + "=" + val + "&";
}
return querystring;
}
Upvotes: 1