Я попробовал кучу простых вариантов и сейчас использую этот:
Код: Выделить всё
foreach (var index in firstSet)
{
if (secondSet.BinarySearch(index) < 0)
continue;
//do stuff
}
Я также пробовал использовать LINQ:
Код: Выделить всё
var intersection = firstSet.Where(t => secondSet.BinarySearch(t) >= 0).ToList();
Но поскольку оба этих набора отсортированы, я чувствую есть лучший способ сделать это. Обратите внимание, что я не могу удалять элементы из наборов, чтобы уменьшить их. Оба набора обычно состоят примерно из 50 предметов каждый.
Пожалуйста, помогите мне, ребята, так как у меня не так много времени, чтобы сделать это. Спасибо.
ПРИМЕЧАНИЕ. Я делаю это примерно 5,3 миллиона раз. Поэтому каждая микросекунда имеет значение.
Подробнее здесь: https://stackoverflow.com/questions/716 ... ed-numbers