浏览C#中带有params的字典

本文关键字:params 字典 浏览 | 更新日期: 2023-09-27 18:28:15

我创建了一个方法,该方法接收未指定数量的字典参数,并扫描所有参数的内容,但不包括相同的参数,它会在第一个或第二个foreach中出错,具体取决于我修复的内容。康塞贡多没有解决这个问题。我怎么能把这件作品做成仿制品呢。

我拿到了params字典,我想浏览一下每本字典的内容。

我遵循的代码如下:

public String getQuerySelectInner(String TABELA, params Dictionary<String, String> dictionaries)
{
    String sql = "SELECT ";
    foreach (Object dictionary in dictionaries)
    {
        foreach (var word in dictionary)
        {
            sql += word.Key + ",";
        }
    }
    sql = sql.Remove(sql.Length - 1);
    sql += " from " + TABELA + "  WHERE situacao = 'ATIVO' ";
    return sql;
}

浏览C#中带有params的字典

您的代码甚至不会编译。您是使用记事本还是实际的IDE进行编码?

无论如何,如果您为params添加括号,并将外部foreach更改为var,而不是强制转换为它编译的Object。这有助于给你想要的吗?

    public String getQuerySelectInner(String TABELA, params Dictionary<String, String>[] dictionaries)
    {
        String sql = "SELECT ";
        foreach (var dictionary in dictionaries)
        {
            foreach (var word in dictionary)
            {
                sql += word.Key + ",";
            }
        }
        sql = sql.Remove(sql.Length - 1);
        sql += " from " + TABELA + "  WHERE situacao = 'ATIVO' ";
        return sql;
    }

为了进一步改进,您可以使用string.join而不是内部循环:sql += string.Join(",", dictionary.Keys);,这意味着您不需要删除后面多余的逗号。