CollectionObject.ToList()。AddRange()正在工作

时间:2019-05-24 04:29:53

标签: c# linq generics

我一直在寻找为什么collectionObj.ToList()。AddRange()无法正常工作,但到目前为止找不到任何使用资源的原因。 我定义了一个ICollection对象= new List()对象。但是,当我尝试使用AddRange将更多项目添加到该List对象时。它没有在其中添加项目。

下面是AddRange无法正常工作的情况

ICollection<Standard> firstList = new List<Standard>(){ new Standard() { StandardID = 1 },
                                                                       new Standard() { StandardID = 2 },
                                                                       new Standard() { StandardID = 3 }};

Console.WriteLine(firstList.GetType()); // Shows the type as List

ICollection<Standard> secondList = new List<Standard>(){new Standard() { StandardID = 1 },
                                                                      new Standard() { StandardID = 2 },
                                                                      new Standard() { StandardID = 3 } };

// Convert to List and used AddRange(). But new items are getting added
firstList.ToList().AddRange(secondList);

但是,如果我执行object.ToList()并将其分配给一个临时变量,然后将项目添加到该临时变量,则可以向其中添加项目。 下面是代码。

var tempList = firstList.ToList();
// System now adds the secondList items to tempList
tempList.AddRange(secondList);

能请你帮我吗?

1 个答案:

答案 0 :(得分:3)

ToList()返回一个列表-您将其丢弃。

firstList.ToList().AddRange(secondList);

firstList.ToList()是一个没有名称的新列表(您没有将其分配给变量)

您将secondList添加到该未命名列表。 firstList不变。