2009-06-11 6 views
-1

У меня есть текстовый файл, который я хочу прочитать и разделить на слова.Сравнение двух массивов, содержащих строки?

У меня есть RichTextBox, что я получу текст и разделим на слова.

Я хочу, чтобы иметь возможность сравнивать слова в двух массивах, а затем отображать сообщение.

Как это сделать в C#?

ответ

2

Вы можете поместить слова, которые вы получаете из текстового файла в HashSet и те, которые вы получаете от ricktextbox1 другому HashSet и пересекают их.

var set1 = new HashSet<string>(words1); 
var set2 = new HashSet<string>(words2); 
set1.IntersectWith(set2); 

Кстати, класс HashSet вводится с .Net 3.5

0

Вы всегда можете пойти с грубой силой, пройдя через слова из одного массива и проверки, если они находятся в другом. Для каждой строки, которую вы найдете в обоих массивах, вы помечаете строку или копируете ее в отдельный массив для строк, находящихся в обоих массивах. Когда вы закончите, вы просто распечатываете/подсчитываете строки в новом массиве.

Обратите внимание, что это очень медленный подход, и есть лучшие способы сделать это там, однако вы не указали, что скорость имеет смысл, и это приведет вас туда.

Вы можете попробовать сделать это с помощью HashSet (как рекомендовал Джош Эйнштейн), я не знаком с этой коллекцией, но быстрый поиск говорит мне, что он может работать очень хорошо.

Смежные вопросы