У вас есть строки неправильно (вы ищете Adminstrator
в Admin
)
Вы можете выполнить проверку в обоих направлениях, как это:
lstProducts.Where(i =>
i.Name.ToLower().Contains(appname.ToLower()) ||
appname.ToLower().Contains(i.Name.ToLower())
).FirstOrDefault();
Или просто сравните первые несколько символов:
lstProducts.Where(i =>
i.Name.ToLower().SubString(0,5) == appname.ToLower().SubString(0,5))
).FirstOrDefault();
Нечеткое совпадение на самом деле довольно сложный предмет, но по этой теме проводится много исследований.