Eine andere Sicht auf FirstOrDefault
Die IEnumerable-Erweiterungsmethode FirstOrDefault hat nicht genau das getan, was ich wollte. Deshalb habe ich FirstOrValue erstellt. Ist dies ein guter Weg, um dies zu tun, oder gibt es einen besseren Weg?
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;
}