Я знаю, это может показаться странным, но я даже не знаю, как искать этот синтаксис в Интернете, а также я не уверен, что именно означает.
Итак, я просмотрел некоторый код MoreLINQ, а затем я заметил этот метод
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;
}
}
}
Что это за нечетный оператор возврата? return _();
?