gpt4 book ai didi

c# - 一种更好的遍历列表的方法

转载 作者:行者123 更新时间:2023-11-30 13:23:06 25 4
gpt4 key购买 nike

所以我有几个不同的列表,我正在尝试处理它们并合并到 1 个列表中。

下面是一段代码,我想看看是否有更好的方法。我问的原因是其中一些列表相当大。我想看看是否有更有效的方法。

如您所见,我正在遍历一个列表,我要做的第一件事是检查 CompanyId 是否存在于列表中。如果是,那么我会在列表中找到我要处理的项目。

pList 是我的进程列表。我将不同列表中的值添加到此列表中。

我想知道是否有“更好的方法”来完成 Exist 和 Find。

    boolean tstFind = false;
foreach (parseAC item in pACList)
{
tstFind = pList.Exists(x => (x.CompanyId == item.key.ToString()));

if (tstFind == true)
{
pItem = pList.Find(x => (x.CompanyId == item.key.ToString()));
//Processing done here. pItem gets updated here
...
}

作为旁注,我将研究一种使用连接的方法,看看它是否更快。但我还没有到那儿。上面的代码是我第一次解决这个问题,它似乎有效。但是,既然我有时间,我想看看是否还有更好的方法。

非常感谢任何输入。

时间发现:

  • 我当前的 Find and Exists 代码需要大约 84 分钟 来遍历 pACList 中的 550 万个项目。

  • 使用 pList.firstOrDefault(x=> x.CompanyId == item.key.ToString());需要54 分钟 来遍历 pACList 中的 550 万个项目

最佳答案

您可以使用 FirstOrDefault 检索项目而不是搜索项目两次(第一次定义项目是否存在,第二次获取现有项目):

var tstFind = pList.FirstOrDefault(x => x.CompanyId == item.key.ToString());

if (tstFind != null)
{
//Processing done here. pItem gets updated here
}

关于c# - 一种更好的遍历列表的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14570280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com