提高 Linq 代码处理海量数据的性能

Increase performance on Linq code in handling huge data

请帮助我编写高效的代码,这是将项目添加到 activeOrderEntities 列表需要较长时间的代码。这里 OrderEntities 有大量数据(大约数百万数据)。

var distinctIds = OrderEntities.Select(o => o.OrderCode).Distinct();
foreach (var id in distinctIds)
{
    var Entity = OrderEntities.Where(c => c.OrderCode == id).Select(x => x.Entity);
    var orderEntity = new OrderEntity {  Entity  = Entity.ToList(), OrderCode = id };
    activeOrderEntities.Add(orderEntity);
}

class OrderEntities 的对象

public class OrderEntity
{
    public string OrderCode { get; set; }

    public string Entity { get; set; }
}

class activeOrderEntities 对象

public class ActiveOrderEntity
{
    public string OrderCode { get; set; }
    
    public List<string> Entity { get; set; }
}

您可以使用它来获取您的数据:

activeOrderEntities = OrderEntities.GroupBy(x => x.OrderCode).Select(x => new OrderEntity { OrderCode = x.Key, LogicalCatalog = x.ToList() }).ToList();

但我强烈建议在 OrderCode 上设置索引以获得更好的性能,并设置 SkipTake 以防止内存泄漏。