Я подумал, что было бы неплохо сделать что-то подобное (с лямбдой, возвращающей доходность):
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 docs просто говорят, что это запрещено.
Поскольку это не было разрешено, я только что создал List и добавил элементы к нему.