Как проверить, являются ли две строки частичным совпадением в C#? [дубликат]

Возможные Дубликаты:
существуют ли библиотеки функций нечеткого поиска или сходства строк, написанные для C#?

Я создаю приложение, которое будет за исключением ввода пользователем песни или исполнителя или названия альбома, а затем будет просматривать массив строк или ArrayList для любых возможных совпадений.

автоматические предложения будут рассчитываться на основе процента совпадения.

для пример

если пользователь ссылка prk он должен найти Linkin Park или Link 80 или Link Wray но процент совпадения будет отличаться для всех

предположим, что коллекция будет искать только имена исполнителей в коллекции исполнителей и название песни в коллекции песен.

(процентные цифры только для объяснения)

Linkin Park - 98%
Link Wray -82%
Link 80 - 62%

решение не должно быть кодом C#, любое регулярное выражение или псевдо-код будут хорошими, но должны быть реализованы в С.#

2 ответов


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

вот ссылка статьи С общей реализацией в C#.