public static TSource Last<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate) {
if (source == null) throw Error.ArgumentNull("source");
if (predicate == null) throw Error.ArgumentNull("predicate");
TSource result = default(TSource);
bool found = false;
foreach (TSource element in source) {
if (predicate(element)) {
result = element;
found = true;
}
}
if (found) return result;
throw Error.NoMatch();
}
Why not ise this
foreach (TSource element in source) {
if (predicate(element)) {
return element;
}
}
Why create extra variable for result ?
Why more iteration after found?
Can anyone explain this code?
Why not ise this
Why create extra variable for result ? Why more iteration after found?