如何自动将项添加到列表中我正在创建它?

时间:2010-04-24 09:07:21

标签: c# list

我想将List传递给方法,但我只希望它包含1个项目。

我是否有可能这样做

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

3 个答案:

答案 0 :(得分: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() }); 

答案 1 :(得分:1)

你错过了括号。这应该有用。

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

答案 2 :(得分:0)

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