3

显然我在这里遗漏了一些东西,但我看不到

List<Item> Items = new List<Item>().Add(new Item() { Code = "12223", ExGroup = 2});

错误信息是

无法将类型隐式转换voidList<>

谢谢

4

5 回答 5

13

使用object initializer列表。你不能这样调用Add因为它返回void,而不是它List本身。试试这个:

List<Item> Items = new List<Item>
                   {
                       new Item { Code = "12223", ExGroup = 2 }
                   };
于 2013-03-13T09:35:09.023 回答
2

您需要在两行上执行此操作:

List<Item> Items = new List<Item>();
Items.Add(new Item() { Code = "12223", ExGroup = 2});

您收到错误的原因是该List<T>.Add方法不返回任何内容,并且您Items应该被从右侧返回的内容填充。

这是 Add 方法的签名。

public void Add(
    T item
)
于 2013-03-13T09:34:34.207 回答
0

或者像这样

       List<Item> Items = new List<Item>{
             new Item() { Code = "12223", ExGroup = 2}
       };
于 2013-03-13T09:35:45.537 回答
0

您不能将 Add 与对象初始值设定项一起使用。List.Add 返回 void,当您初始化列表时,这是不期望的。改用这个:

List<Item> Items = new List<Item>
{
   new Item { Code = "12223", ExGroup = 2 }
};

或者,如果您仍想使用 Add,那么您可以按照 Habib 的说明将代码分成两行。

希望这可以帮助。

于 2013-03-13T09:39:33.630 回答
0

如果您想在一行中执行此操作,请使用Collection Initializer

如:

List<Item> Items = new List<Item> 
     { new Item() { Code = "12223", ExGroup = 2 } };
于 2013-03-13T09:41:08.720 回答