Если вы можете отсортировать какой-либо атрибут в записях, который также используется для сравнения, вы можете использовать сортировка слиянием для сортировки файлов и сканирования их параллельно без необходимости сохранять вседанные в основной памяти.
Проверка того, что запись в первом файле также присутствует во втором файле, имеет сложность O (n ^ 2), если вы используете два вложенных цикла.Но если файлы отсортированы, вы можете использовать один цикл.Кроме того, сортировка слиянием имеет сложность O (n log n).Общая сложность O (n log n), что лучше, чем O (n ^ 2). Здесь - реализация сортировки слиянием в C #.
Я думаю, что вы можете достичь того же результата (с точки зрения скорости), используя базу данных, если записи проиндексированы.