Я написал следующий код, и я не могу понять, почему он возвращает только два элемента, а не все. Похоже, что метод «Где» работает только с последним добавленным методом.Выражение LINQ с несколькими методами
class Person
{
public int Age { get; set; }
public string Name { get; set; }
}
class Program
{
public static bool IsAdult(Person person)
{
return person.Age > 18;
}
public static bool MethodTrue(Person person)
{
return true;
}
static void Main()
{
var list = new List<Person>
{
new Person() { Age = 20, Name = "Artur" },
new Person() { Age = 30, Name = "Adam" },
new Person() { Age = 10, Name = "Wieslaw" },
new Person() { Age = 15, Name = "Michal" }
};
Func<Person, bool> predicate = null;
predicate += MethodTrue;
predicate += IsAdult;
var res = list.Where(predicate);
}
}
Почему вы ожидаете получить все четыре объекта «Личность», когда только два из четырех отвечают критериям, определенным вашим предикатом?Сколько из объектов вы ожидаете 'IsAdult()' для возврата 'true' для? –