提高 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
上设置索引以获得更好的性能,并设置 Skip
和 Take
以防止内存泄漏。
请帮助我编写高效的代码,这是将项目添加到 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
上设置索引以获得更好的性能,并设置 Skip
和 Take
以防止内存泄漏。