我想将List传递给方法,但我只希望它包含1个项目。
我是否有可能这样做
MyType myType = new MyType();
MyMethod(new List<MyType>{ myType }); // somehow add myType to the list as I'm creating it
答案 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的众神鞠躬,寻求可编/可持续代码的建议。它可以帮助我的同事不要杀了我。