これは奇妙に聞こえるかもしれませんが、インターネットでこの構文を検索する方法もわかりません。また、正確な意味がわかりません。
だから私はいくつかの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ステートメントは何ですか?return _();
?
@スティーブ、私はOPがより多くを参照して
—
Rob
return _(); IEnumerable<TSource> _()
いるのyield return
だろうか?
私は彼がこのラインを意味したと思います
—
Mateusz 2017
return _(); IEnumerable<TSource> _()
。実際のreturnステートメントではなく、見た目が混乱する可能性があります。
@AkashKava OPは、奇妙なリターンステートメントがあると述べました。残念ながら、コードには2つの returnステートメントが含まれています。ですから、彼/彼女がどちらに言及しているかについて人々が混乱しているなら、それは理解できます。
—
mjwills 2017
質問を編集しましたが、混乱を招きました。
—
kuskmen 2017
return _(); IEnumerable<TSource> _()
ですか?