Почему в 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();
}

Однако я обнаружил, что не могу использовать yield в анонимном методе. Мне интересно, почему.приносить документы просто сказать, что это не разрешено.

Поскольку это было запрещено, я просто создал List и добавил в него элементы.

Ответы на вопрос(5)

Ваш ответ на вопрос