将项目添加到列表<>

时间:2013-03-13 09:33:39

标签: c# .net

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

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

错误讯息是

  

无法隐式将void类型转换为List<>

由于

5 个答案:

答案 0 :(得分:13)

使用object initializer获取列表。您无法像{strong>那样致电Add,因为它会返回void,而不是List本身。试试这个:

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

答案 1 :(得分: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
)

答案 2 :(得分:0)

或者像这样

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

答案 3 :(得分:0)

您无法使用Add with object initializer。 List.Add return void 在初始化列表时不会出现这种情况。请改用:

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

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

希望这有帮助。

答案 4 :(得分:0)

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

如:

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