有一个可以建立索引的列表吗?

问题描述 投票:0回答:1

我目前有以下类型的代码:

List<Product> products = Db.GetAllProducts(database);

foreach (var part in ListOfParts)
{
    if (part.ProductId != null)
    {
        if (products.Where(o => o.Id == part.ProductId).FirstOrDefault() == null)
        { ...}

你可以看到我做了很多

produces.Where(o => o.Id == ...).FirstOrDefault()

在使用表(通用数据库技术)时,可以添加索引以加快搜索速度。

System.Generic.Collections.List
类或
System.Generic.Collections
命名空间中的另一个类也存在这样的事情吗?

c# list performance indexing collections
1个回答
0
投票

这看起来像实体框架。如果是这样,你的数据库有这个索引!

不要使用像

GetAllXX()
这样的方法将其加载到列表中。获取 IQueryable 并让 EF 构建查询,这样数据库就可以高效。这不仅可以让您使用索引,还可以节省计算机和数据库服务器上的内存,并节省通过网络在它们之间传输数据的时间。

© www.soinside.com 2019 - 2024. All rights reserved.