将方法参数字符串 [] 转换为字典

本文关键字:转换 字典 方法 参数 字符串 | 更新日期: 2023-09-27 18:32:26

在某些实用程序库中,我有具有params[]参数的方法。在许多情况下,这些最终会成为键/值对,如果我能将它们转换为字典,这将更加有用。

最有效的

方法是什么?我可以通过 Linq 以某种方式执行此操作吗?

下面是一个示例:

public static Uri appendParams(Uri uri, params string[] parameters)
    {
        if (uri == null)
        {
            return null;
        }
        if (parameters == null) {
            return uri;
        }
        var queryStringBuilder = new StringBuilder(uri.Query ?? "");
        //Would like to convert the params[] argument to a dictionary here
        Dictionary<String, String> paramsDictionary = null; // Not sure best way to do this...
        foreach (KeyValuePair<String, String> kvp in paramsDictionary)
        {
            queryStringBuilder.Append(kvp.Key + "=" + kvp.Value);
        }
        var uriBuilder = new UriBuilder(uri);
        uriBuilder.Query = queryStringBuilder.ToString();
        return uriBuilder.Uri;
    }

将方法参数字符串 [] 转换为字典

如果要构建字符串并立即使用它(并且不将字典用于其他任何内容),则可以跳过字典创建步骤,仅从参数数组构建查询字符串:

for (int i = 0; i < parameters.Length - 1; i += 2)
{
    var concatChar = (i == 0) ? "?" : "&";
    queryString.AppendFormat("{0}{1}={2}", 
        concatChar, parameters[i], parameters[i + 1]);
}