【问题标题】:Pass value to a dictionary type parameter in C#将值传递给 C# 中的字典类型参数
【发布时间】:2015-08-18 04:31:31
【问题描述】:

我是新人,对字典很感兴趣。 我在基础存储库上写了一个方法,如下所示:

public IList<DropDownSelectList> GetDropDownData(string valueColumn, string displayColumn, string orderByColumnName = "", Dictionary<string, object> paramList = null)
{
//do my tasks.....
...

if (paramList != null)
{
   int index = 0;
   args = new object[paramList.Count];
   foreach (var item in paramList)
   {
      whereCondition += " AND " + item.Key + "=@"+ index.ToString();
      args[index] = item.Value;
      index++;
   }
}
..........
}

现在,当我像这样从某个子存储库调用方法时:

return base.GetDropDownData("DivisionID", "DivisionName", "DivisionName", null);

那没关系。

但是当我尝试向参数发送一些值时,它根本不起作用。

我尝试如下:

return base.GetDropDownData("DivisionID", "DivisionName", "DivisionName", "DivisionID",1);

还有:

Contact oContact = new Contact();
return base.GetDropDownData("DivisionID", "DivisionName", "DivisionName", "DivisionID", oContact);

但我得到了错误:

没有重载方法 'GetDropDownData' 需要 5 个参数。

提前致谢。

【问题讨论】:

  • 因为在你的函数中你只指定了 4 个参数。在第一种情况下,您传递了 4 个参数 - 一切正常。在其他情况下你试图传递什么?

标签: c# .net asp.net-mvc dictionary


【解决方案1】:

替换这个:

return base.GetDropDownData("DivisionID", "DivisionName", "DivisionName", "DivisionID",1);

有了这个:

return base.GetDropDownData("DivisionID", "DivisionName", "DivisionName", 
                     new Dictionary<String, object> { { "DivisionID", 1 } });

如果你想要多个参数...

return base.GetDropDownData("DivisionID", "DivisionName", "DivisionName", 
                     new Dictionary<String, object> { 
                         { "DivisionID", 1 }, 
                         { "OfficeID", 3 } 
                     });

等等。

【讨论】:

  • 没错!非常感谢。
【解决方案2】:

“没有重载方法 'GetDropDownData' 需要 5 个参数。”这只是意味着您的方法不能接受 4 个参数,因为您的定义需要 4 个。如果您需要发送更多参数,您可以编写另一个与 5 个参数同名的方法。您还可以在末尾添加一个具有默认值的参数,这样如果您使用 4 个参数调用此方法,它应该自动使用最后一个参数的默认值!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    • 2014-09-19
    • 2018-01-23
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    相关资源
    最近更新 更多