5
C#で、無名メソッドにyieldステートメントを含めることができないのはなぜですか?
私はこのようなことをするのが良いだろうと思いました(ラムダが利回りを返すことで): public IList<T> Find<T>(Expression<Func<T, bool>> expression) where T : class, new() { IList<T> list = GetList<T>(); var fun = expression.Compile(); var items = () => { foreach (var item in list) if (fun.Invoke(item)) yield return item; // This is not allowed by C# } return items.ToList(); } しかし、無名メソッドでは利回りを使用できないことがわかりました。なぜだろう。歩留まりのドキュメントは、それが許可されていないと言います。 許可されなかったので、リストを作成して項目を追加しただけです。