我可以使用带有NameValueCollection的集合初始值设定项吗?

gap*_*gap 88 c# collections

有没有办法使用C#集合初始化器语法初始化NVC:

NameValueCollection nvc = new NameValueCollection() { ("a", "1"), ("b", "2") };
Run Code Online (Sandbox Code Playgroud)

谢谢

SLa*_*aks 133

是; 只是使用大括号而不是括号.

var nvc = new NameValueCollection { {"a", "1"}, {"b", "2"} };
Run Code Online (Sandbox Code Playgroud)

您可以Add使用语法使用任意参数集调用方法.

  • 很好的捕获,它似乎被埋在`Dictionary <K,V>`初始化,或任何其Add方法采用多个参数的集合的页面中,"http://msdn.microsoft.com/en-us/library/ bb531208.aspx (4认同)
  • @six:实际上,它甚至没有提到这种语法. (3认同)

And*_*rey 7

您可以将集合初始化程序与包含Add方法的所有内容一起使 是的,鸭子打字.如果Add有超过1个参数将元组放在花括号中:

NameValueCollection nvc = new NameValueCollection() { { "a", "1" }, { "b", "2" } };
Run Code Online (Sandbox Code Playgroud)

  • 不完全的; 它必须实现`IEnumerable`. (2认同)
  • 实现`System.Collections.IEnumerable`并且具有至少带有1个参数的`Add`方法. (2认同)