使用另一个列表中的详细信息填充大对象列表

时间:2019-03-11 12:38:02

标签: c# performance linq

我有一个大型数据库查询,该查询将100k条记录返回到内存列表中。我需要将相关员工的列表链接到每条记录(也在100k条记录附近),但是我在努力获得可用的绩效。

foreach (var detail in reportData.Details)
{
    detail.Employees = employees
      .Where(x => x.AccountingDocumentItemId == detail.AccountingDocumentItemId)
      .Select(x => x.Employee)
      .ToList();

    detail.Employee = String.Join(", ", detail.Employees);
}

以上代码需要 8分钟才能完成。我将速度问题缩小到for loop中找到相关员工的第一行。如果我忽略了ToList(),它的速度很快,但是下一行会立即引起String.Join导致执行位置的问题。

我显然是从错误的角度来解决这个问题,但是我已经用尽了我认为可行的选择。

0 个答案:

没有答案