我想要连续两个List<Student>
。
Student
只是一个包含一些属性的类。
我还有另一个Form
创建Student
并填充List<Student>
从那里,当StudentCreator
关闭时,我希望List<Student>
中的StudentCreator
与主要表单中的List<Student>
合并。有效更新主列表。
这是我遇到问题的代码的主要部分,我收到错误消息称我无法将某些IEnumerable<something>
转换为List<something>
private void update_students(addStudent s)
{
Form activeForm = Form.ActiveForm;
if(activeForm == this)
{
tempList = s.StudentList;
studentList_HomeForm = tempList.Concat(tempList);
}
}
这是给出错误的主线
tempList.Concat(tempList)
如何解决此错误?
答案 0 :(得分:5)
tempList.Concat
返回一个可枚举的东西,你可以迭代的东西。如果要将其转换为列表,可以调用ToList()
:
var newList = tempList.Concat(tempList).ToList();
// you are basically copying the same list... is this intentional?
您可以采取的另一种方法是创建一个新列表,迭代现有列表并将它们添加到新创建的列表中:
List<Student> newList = new List<Student>(firstList); // start of by copying list 1
// Add every item from list 2, one by one
foreach (Student s in secondList)
{
newList.Add(s);
}
// Add every item from list 2, at once
newList.AddRange(secondList);
答案 1 :(得分:2)
您可以使用AddRange方法 - https://msdn.microsoft.com/en-us/library/z883w3dc(v=vs.110).aspx
studentList.AddRange(tempList);