0

不特定の量の辞書パラメーターを受け取り、それらすべてのコンテンツをスキャンするメソッドを作成しましたが、同じことはカバーされていません。修正内容に応じて、最初または2番目の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 を使用してコーディングしていますか?

とにかく、params にブラケットを追加し、外側の foreach を Object にキャストするのではなく var に変更すると、コンパイルされます。それはあなたが望むものを与えるのに役立ちますか?

    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 に答える