C# 使用字符串键=>VAL??C

C# 使用字符串键=>VAL??C,c#,C#,我该怎么走?像这样: public static string DictToQueryString(Dictionary<string, string> data) { string querystring = ""; foreach (string key, string val in data) querystring += key + "=" + val + "&"; return querystring; } 我相信这就

我该怎么走?

像这样:

public static string DictToQueryString(Dictionary<string, string> data)
{
    string querystring = "";

    foreach (string key, string val in data)
         querystring += key + "=" + val + "&";

    return querystring;
}

我相信这就是你要找的

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();
}

你的代码最终会有一个无关的&。你想要这个吗?很可能您不想要这个,但如果想要,请更正。假设不是这样,最简单的方法是让他们完成任务:

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;
}

在C4.0中,将调用ToArray

另外,pair的类型将是KeyValuePair。我认为它来自PHP背景?
public static string DictToQueryString(Dictionary<string, string> data) { 
    return String.Join(
        "&",
        data.Select(kvp => String.Format("{0}={1}", kvp.Key, kvp.Value))
            .ToArray()
    );