Таким образом, у вас есть три различных сочетания одних и тех же предметов.Таким образом, если бы текстовые файлы были файлами целых чисел, то эти три считались бы идентичными:
1,2,3
3,2,1
2,1,3
, но 1,2,4
не было бы.
Если файл достаточно мал, чтобы поместиться в память, вы можете использовать простой HashSet(of String)
(надеюсь, я правильно понял синтаксис VB).Обратите внимание, что вам нужно только сохранить содержимое ОДНОГО файла в памяти.Остальные читаются построчно.
Для первого файла прочитайте каждую строку в объект (или, возможно, просто сохраните его в виде строки) и добавьте его в HashSet
.Теперь для каждого из двух других файлов (при условии, что hashSet
называется file1Data
):
int lineNum = 0;
foreach (var line in File.ReadLines(filename))
{
++lineNum;
if (!file1Data.Contains(line))
{
// error here
}
}
Если файлы не достаточно малы, чтобы поместиться в память, то я не вижу другого вариантачем выполнять внешнюю сортировку для каждого файла, затем либо использовать существующую программу сравнения, либо написать простое сравнение слиянием.