c# – 循环列表的更好方法
发布时间:2020-12-16 00:22:16 所属栏目:百科 来源:网络整理
导读:所以我有几个不同的列表,我正在尝试处理并合并到1个列表中. 下面是一段代码,我想看看是否有更好的方法. 我之所以要问的是,其中一些列表相当大.我想看看是否有更有效的方法来做到这一点. 正如您所看到的,我正在遍历列表,我要做的第一件事就是检查列表中是否存
所以我有几个不同的列表,我正在尝试处理并合并到1个列表中.
下面是一段代码,我想看看是否有更好的方法. 正如您所看到的,我正在遍历列表,我要做的第一件事就是检查列表中是否存在CompanyId.如果是,那么我在列表中找到我要处理的项目. pList是我的processign列表.我将不同列表中的值添加到此列表中. 我想知道是否有一种“更好的方式”来完成存在和发现. 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 ... } 正如旁注,我将研究一种使用连接的方法,看看它是否更快.但我还没到那儿.上面的代码是我第一次解决这个问题,它似乎工作.但是,因为我有时间想看看是否还有更好的方法. 任何输入都非常感谢. 时间调查结果: >我当前的查找和存在代码大约需要84分钟来遍历pACList中的5.5M项目. 解决方法
您可以使用FirstOrDefault检索项目,而不是两次搜索项目(第一次定义是否存在项目,第二次获取现有项目):
var tstFind = pList.FirstOrDefault(x => x.CompanyId == item.key.ToString()); if (tstFind != null) { //Processing done here. pItem gets updated here } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |