나는 이것이 이상하게 들릴 수 있지만 인터넷 에서이 구문을 검색하는 방법도 모르고 정확히 무엇을 의미하는지 확실하지 않습니다.
그래서 몇 가지 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 _();
?
@ Steve, OP가 더 많은 것을 참조하고 있는지 궁금
—
Rob
return _(); IEnumerable<TSource> _()
합니다 yield return
.
나는 그가이 대사를 의미했다고 생각한다
—
Mateusz
return _(); IEnumerable<TSource> _()
. 실제 return 문이 아닌 모양으로 혼동 될 수 있습니다.
@AkashKava OP는 이상한 반환 진술이 있다고 말했습니다. 불행히도 코드에는 두 개의 return 문이 있습니다. 따라서 사람들이 자신이 언급하는 내용에 대해 혼란스러워해도 이해할 수 있습니다.
—
mjwills jul.
질문을 수정했으며 다시 한 번 혼란을 드려 죄송합니다.
—
kuskmen
return _(); IEnumerable<TSource> _()
합니까?