我有一个三维列表。外部列表表示有多少个课时。下一个内部列表表示有多少学生(列表中的位置是学生的唯一ID)。最后的名单是学生在那段时间内学习的课程。
我可以复制此列表的最快方法是什么?
我试过
a.var = var.Select(x => x.ToList()).ToList().ToList();
但这不起作用。以下是我正在使用的内容,但我确信有更清洁,更快捷的方式,我想了解如何。
foreach (PERIOD period in periods)
{
a.var.Add(new List<List<int>>());
for (int student = 0; student < students.Count + 1; student++)
a.var[IntFromEnum(period)].Add(new List<int>());
foreach (Course course in periods[IntFromEnum(period)])
{
foreach (int student in course.students)
a.var[IntFromEnum(period)][student] = new List<int>(var[IntFromEnum(period)][student])
}
}
答案 0 :(得分:1)
我不会对您的类型进行实验,但假设您的periods
集合看起来像这样
List<List<List<int>>> p;
然后你可以做一些内部Select
来复制。像这样:
var a = p.Select(x => new List<List<int>>(x.Select(y => new List<int>(y)))).ToList();
或清洁工:
var a = p.Select(x => x.Select(y => y.ToList()).ToList()).ToList();
不一定是最快的,但代码非常简单。