私はジェネリックにかなり慣れていますが、すべての詳細を理解するのが好きな人なので、この質問があります. Where
私のLINQ拡張メソッドの実装では
public static class Extensions
{
public static IEnumerable<T> Where<T>(
this IEnumerable<T> source, Func<T, bool> predicate)
{
foreach (T element in source)
if (predicate(element))
yield return element;
}
}
なぜ必要なのT
ですか?inWhere<T>
から型を推測できないのはなぜですか? 言い換えれば、なぜ署名ができないのかT
IEnumerable<T>
public static IEnumerable<T> Where(this IEnumerable<T> source, Func<T, bool> predicate)
助けてくれてありがとう。