У меня есть эта строка кода, которая возвращает индекс определенного объекта в IList<T>
int index = list.IndexOf(list.Where(x => x.Code == searchValue).FirstOrDefault());
и у меня есть похожая конструкция во многих местах, которая ищет коллекции по разным свойствам. Моя цель - автоматизировать это, чтобы у меня был общий метод MyClass<T>
int index = myClass.Find<T>(x=> x.Code == searchValue);
или
int index = MyClass.Find<T>(x => x.Name.ToUpper().StartsWith(searchValue.ToUpper()));
Возможно ли это с помощью лямбда-выражений?
Edit:
Для тех, кто спрашивает то же самое, вот код, который работает:
public int Find(Func<T, bool> whereClause)
{
return _list.IndexOf(_list.Where<T>(whereClause).FirstOrDefault<T>());
}