FindIndex вернет - 1 если результат не будет найден, а Find вернет значение по умолчанию. Если ExamPass value - тип, то может возникнуть неоднозначная ситуация.
Ну так надо просто сразу выбирать правильные структуры для хранения и обработки данных. Если нужен поиск по определенному полю в структуре — то словари оптимальное решение. Там есть поиск с выбросом ошибки и поиск, который возвращает кроме результата еще и флаг, было ли найдено значение. И не надо никаких лямбд и анонимных функций.
Типа такого:
public class ExamPass
{
public string Zachetka;
}
Dictionary<string, ExamPass> Spisok = new Dictionary<string, ExamPass>();
И далее просто ищем в списке по полю:
Spisok.Add("ab", new ExamPass { Zachetka = "ab" });
Spisok.Add("cd", new ExamPass { Zachetka = "cd" });
Spisok.Add("ef", new ExamPass { Zachetka = "ef" });
if (Spisok.TryGetValue("cd", out ExamPass founded)
{
}
не понимаю зачем вторые фигурные скобки, лябда ищет вхождение зачетки в колекции, полагаю значение присваиваться должно, но это не точно :) , на сколько я могу судить, он возвращает только индекс, без последующей обработки.
Mari32, Опять конечно, я могу ошибаться, но он возможно думает что вы хотите от него анонимную функцию, попробуйте выражение после => запихнуть в фигурные скобки.