在C#中比较和更新两个列表

Mik*_*rth 4 c# linq list

上下文是我在内存中有一组缓存的值,这些值很难获取,而另一组相关数据的获取成本低廉且无法缓存(业务规则).我已经完成了所有工作,但我只是想知道是否有人能想到更便宜的方式进行这种更新......

    foreach (var nonCachedItem in searchItemsNonCached)
    {
        foreach (var cachedItem in searchItemsCached)
        {
            if (cachedItem.ID == nonCachedItem.ID)
                nonCachedItem.Description = cachedItem.Description;
        }
    }
Run Code Online (Sandbox Code Playgroud)

它基本上只是为了将缓存的信息与我刚收到的信息相匹配.一切正常,负载几乎可以忽略不计,但我对提高效率有点傻逼.

编辑:在上面,searchItemsNonCached和searchItemsCached都是SearchItem的列表,其中Searchitem是一个定制对象.

Ada*_*ruk 5

将缓存的项目存储在字典中.现在只有在密钥存在时才能更新.