Inne podejście do FirstOrDefault
Metoda rozszerzenia IEnumerable FirstOrDefault nie działała dokładnie tak, jak chciałem, więc utworzyłem FirstOrValue. Czy jest to dobry sposób na to, czy jest lepszy sposób?
public static T FirstOrValue<T>(this IEnumerable<T> source, Func<T, bool> predicate, T value)
{
T first = source.FirstOrDefault(predicate);
return Equals(first, default(T)) ? value : first;
}