我寫了下面的代碼,我無法理解它爲什麼只返回兩個元素而不是全部。它看起來像「Where」方法只適用於最後添加的方法。使用多種方法的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);
}
}
爲什麼你希望得到所有四個'Person'對象時只有兩個四的滿足您的謂詞所定義的標準是什麼?你期望有多少個對象IsAdult()返回true? –