复制嵌套列表的最快方法

时间:2013-05-31 18:17:35

标签: c# list copy nested

我有一个三维列表。外部列表表示有多少个课时。下一个内部列表表示有多少学生(列表中的位置是学生的唯一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])
  }
}

1 个答案:

答案 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();

不一定是最快的,但代码非常简单。