Я не уверен, просите ли вы о помощи в написании поиска по существующей функции сходства, или если вы просите помощи в написании функции сходства. На данный момент я предполагаю, что вы полностью потерялись.
Учитывая это предположение, вы заметите, что я разделил проблему на две части, и это то, что вам нужно сделать. Вам нужно написать функцию, которая принимает два строковых ввода и возвращает логическое значение, указывающее, достаточно ли похожи входы. Затем вам потребуется отдельный поиск делегата , который будет сопоставлять любую функцию с такой подписью.
Базовая подпись для вашей функции привязки может выглядеть следующим образом:
bool IsAffinityMatch(string p1, string p2)
И тогда ваш поиск будет выглядеть так:
MyPersonCollection.Where(p => IsAffinityMatch(p.Surname, OtherPerson.Surname));