2010-04-24 39 views
0

我想将List传递给方法,但我只希望它包含1个项目。如何在创建它时自动将项添加到列表中?

是否有可能为我做到这一点类似于

MyType myType = new MyType(); 
MyMethod(new List<MyType>{ myType }); // somehow add myType to the list as I'm creating it 
+0

是的,为什么不。或者它会抛出一些异常? – 2010-04-24 09:11:20

回答

2

我错了,简单的答案是没有的例子,因为它被张贴失踪括号。肯定还有其他一些错字,因为所有的时候我测试了它的工作下列:

MyType myType = new MyType(); 
MyMethod(new List<MyType>{ myType }); 

MyMethod(new List<MyType>{ new MyType(), new MyType() }); 

MyMethod(new List<MyType>{ new MyType() }); 

======================== 简答:你错过了括号。

MyType myType = new MyType(); 
MyMethod(new List<MyType>(){ myType }); 

,或者如果你不需要命名的的myType变量超出周围插入(例如,它只会从列表中使用)

MyMethod(new List<MyType>(){ new MyType(), new MyType() }); 

注意正上方的示例中插入的两个项目名单。我用这种方式写出来显示多个作品。如果你只是想一个你在你的问题表明那么这就是你应该使用什么:

MyMethod(new List<MyType>(){ new MyType() }); 
+0

他们不需要,所以他的代码应该工作。 – 2010-04-24 09:31:44

+0

我想我从来没有尝试过没有括号之前。 – Felan 2010-04-24 15:12:48

1

你错过了括号。这应该工作。

MyMethod(new List<MyType>() { myType }); 
+0

实际上并不需要方括号,所以他的代码应该完美工作。 – 2010-04-24 09:30:25

0

这些只是对象/集合初始值设定项,正如指出的那样。一个建议是,在你使用内联对象定义疯狂之前,安装并鞠躬致神StyleCop寻求写可读/可持续代码的建议。它帮助我的同事不杀我。

相关问题