0

我创建了一个方法,它接收未指定数量的字典参数并扫描所有这些参数的内容,但没有涵盖相同的内容,它在第一次或第二次 foreach 中给出错误,具体取决于我修复的内容。Consegundo'm 没有解决这个问题。我怎样才能使这项工作变得异常。

我得到了 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;
}
4

1 回答 1

1

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

无论如何,如果您为参数添加括号并将外部 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);这意味着你不需要删除额外的逗号。

于 2013-08-19T10:47:54.010 回答