C# 在C中浏览带参数的词典
我创建了一个方法,该方法接收未指定数量的字典参数,并扫描所有字典参数的内容,但没有涵盖相同的内容,它在第一个或第二个foreach中给出错误,这取决于我修复的内容。我不能解决这个问题。我怎样才能使这项工作顺利进行 我得到了params字典,我想浏览每一本字典的内容 我遵循的代码如下:C# 在C中浏览带参数的词典,c#,dictionary,params,params-keyword,C#,Dictionary,Params,Params Keyword,我创建了一个方法,该方法接收未指定数量的字典参数,并扫描所有字典参数的内容,但没有涵盖相同的内容,它在第一个或第二个foreach中给出错误,这取决于我修复的内容。我不能解决这个问题。我怎样才能使这项工作顺利进行 我得到了params字典,我想浏览每一本字典的内容 我遵循的代码如下: public String getQuerySelectInner(String TABELA, params Dictionary<String, String> dictionaries) {
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;
}
你的代码甚至没有编译。您是使用记事本还是实际的IDE进行编码 无论如何,如果为参数添加括号,并将外部foreach更改为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;这意味着您不需要删除后面多余的逗号。切勿使用字符串生成SQL。这有如此多的SQL注入概率。对象字典中的每个单词?对象不是从IEnumerable继承的,所以如何通过它进行foreach?这段代码生成的错误是什么???@it'sNotALie。如果不连接最终用户文本,SqlInjection如何实现?