Member 12972565 Ответов: 1

Как я могу сравнить содержимое нескольких текстовых файлов (скажем, 7) и сохранить общее содержимое в другом текстовом файле


У меня есть несколько текстовых файлов, и у них есть контент!Мне нужно получить все содержимое и сравнить их,поэтому я попытался прочитать и сохранить их в списке как контекст каждого текстового файла в качестве индекса списка
любить
1.txt в [0] и далее 2.txt в [1] и так далее...
но я не могу их сравнивать... Пожалуйста, кто-нибудь может мне помочь!

пример :1.txt имеет значения 1 2 3 4
2.txt имеет значения 3 5 6
Я должен получить вывод как 3, то есть общий контекст в обоих файлах аналогично, если у меня есть много файлов с общим содержимым всех этих файлов

Что я уже пробовал:

Я пробовал использовать список, где все текстовые файлы хранятся в индексе, но я не могу их сравнить!Я новичок и изучаю язык Си#

[no name]

Я думаю, что словарь будет более подходящим для этой задачи.

Member 12972565

Я буду рад, если вы немного поможете с кодом!спасибо

[no name]

Да, я уверен, что вы бы это сделали. Обучение написанию кода является частью процесса обучения. Вы должны попробовать.

Richard MacCutchan

Начните с 2 файлов и попробуйте сравнить их. Непонятно, что вы пытаетесь сравнить, просто общие слова или полные предложения?

Member 12972565

просто цифры в одной строке

OriginalGriff

Ричард говорит, что мы понятия не имеем, как выглядят ваши данные или какие результаты должно дать сравнение. В результате мы ничего не можем сказать вам о том, как подойти к проблеме, так как не видим, что вам нужно!

Итак, приведите нам примеры двух файлов и покажите, что в результате должны получиться сравнения.
Используйте виджет" улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

Member 12972565

Я обновил его..пожалуйста, проверьте

Patrice T

Можете ли вы уточнить примеры ?
Вы ищете слова?
а что если
1 это 1 2 3 4
2 составляет 3 5 6
3 в 1 5

а что если
1 это 1 2 3 4
2 составляет 3 5 6
3 это 1 3 5

а что если
1 это 1 23 4
2 составляет 3 5 6
3 в 1 35

1 Ответов

Рейтинг:
6

OriginalGriff

Это не сложно, если вы думаете об этом и принимаете это шаг за шагом.
Считайте каждый файл в строку:

string data = File.ReadAllText(pathToFile);

Разбейте это на отдельные сегменты для сравнения:
string[] bits = data.Split(' ', '\n');

Если вы добавите каждый из них в коллекцию, то позже сможете использовать цикл для их сравнения:
List<string[]> toCompare = new List<string[]>();
...
toCompare.Add(bits);

И петля довольно проста:
string[] soFar = toCompare[0];
for (int i = 1; i < toCompare.Count; i++)
    {
    soFar = soFar.Intersect(toCompare[i]).ToArray();
    if (soFar.Count() == 0) break;
    }
Метод Linq Intersect возвращает все общие значения в двух коллекциях.