我一直在寻找为什么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);
能请你帮我吗?
答案 0 :(得分:3)
ToList()
返回一个列表-您将其丢弃。
firstList.ToList().AddRange(secondList);
firstList.ToList()
是一个没有名称的新列表(您没有将其分配给变量)
您将secondList添加到该未命名列表。 firstList
不变。