所以我有几个不同的列表,我正在尝试处理并合并到一个列表中。
下面是一段代码,我想看看是否有更好的方法。我问的原因是其中一些列表相当大。我想看看是否有更有效的方法来做到这一点。
如您所见,我正在遍历一个列表,我要做的第一件事是检查 CompanyId 是否存在于列表中。如果是这样,那么我会在列表中找到要处理的项目。
pList 是我的进程列表。我正在将不同列表中的值添加到此列表中。
我想知道是否有一种“更好的方法”来完成存在和查找。
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 中的 5.5M 项。
使用 pList.firstOrDefault(x=> x.CompanyId == item.key.ToString()); 循环遍历 pACList 中的 550 万个项目需要54 分钟