Odd return syntax statement

Viewed 4763

I know this may sound strange but I don't know even how to search this syntax in internet and also I am not sure what exactly means.

So I've watched over some MoreLINQ code and then I noticed this method

public static IEnumerable<TSource> DistinctBy<TSource, TKey>(this IEnumerable<TSource> source,
        Func<TSource, TKey> keySelector, IEqualityComparer<TKey> comparer)
{
    if (source == null) throw new ArgumentNullException(nameof(source));
    if (keySelector == null) throw new ArgumentNullException(nameof(keySelector));

    return _(); IEnumerable<TSource> _()
    {
        var knownKeys = new HashSet<TKey>(comparer);
        foreach (var element in source)
        {
            if (knownKeys.Add(keySelector(element)))
                yield return element;
        }
    }
}

What is this odd return statement? return _(); ?

2 Answers
Related