我尝试查找一些与我的问题相关或对我的应用程序有意义的文章,但没有找到任何相关的内容。这是我的问题:
我有两个列表,每个列表中都有超过20,000个项目。
我需要检查每个列表中的每个项目是否与另一个列表中的每个项目匹配。
类似以下实现的代码:
foreach(var item1 in List1)
{
foreach(var item2 in List2)
{
// Check item 1 against item 2.
// Check item 2 against item 1.
}
}
由于检查工作的原因,处理这些大型项目列表变得非常缓慢且无法使用。
是否有更有效的方法来处理这些需要此类检查的大型项目列表?
如果有更多信息可以提供,请告诉我。感谢任何帮助/建议。
我正在使用C#.NET 3.5
编辑:让我简要解释一下检查。
item1和item2是路径系统的一部分。 item1和item2由N个其他项目连接。 我正在检查item1是否连接(有效路径)到item2,并且item2连接到item1。 不能假定如果item1 -> item2,则item2 -> item1。 因此,两个检查都是必要的。
数据库包含有关item1 -> item2以及item2 -> item1的信息以及如何进行操作。
在检查中,存在对服务的命名管道调用以执行检查。 服务执行所有路径检查并返回item1 -> item2等。