我正在计算我的应用程序的时间关键部分中的两组排序数字的交集.这个计算是整个应用程序的最大瓶颈,所以我需要加快速度.
我尝试过一些简单的选项,目前正在使用它:
foreach (var index in firstSet)
{
if (secondSet.BinarySearch(index) < 0)
continue;
//do stuff
}
Run Code Online (Sandbox Code Playgroud)
这两个firstSet和secondSet的类型列表.
我也尝试过使用LINQ:
var intersection = firstSet.Where(t => secondSet.BinarySearch(t) >= 0).ToList();
Run Code Online (Sandbox Code Playgroud)
然后循环intersection.
但是,由于这两个集合都已排序,我觉得有更好的方法.请注意,我无法从集中删除项目以使其变小.两套通常每件约50件.
请帮助我们,因为我没有太多时间来完成这件事.谢谢.
注意:我这样做了大约530万次.所以每微秒都很重要.