在c#集合列表的衆多擴展方法中,Any方法和All方法是比較常用。
Any語義:任意一個元素滿足條件則返回true,否則返回fase;
All語義:所有元素滿足條件則返回true,否則返回false
但是,如果集合本身是空集,即集合元素個數爲0,可能會對使用者的正常邏輯產生混淆
當集合是空集的情況,Any方法和All方法,會忽略條件判斷語句,以空集的意義返回判斷結果。
即:當集合爲空集時:Any方法返回false,All方法返回true。
這對新手來說是一個不小的坑,下面是測試代碼
List<string> list = new List<string>();
var b1 = list.All(c => false); //輸出 true
var b2 = list.All(c => false);//輸出 true
var b3 = list.Any(c => true)//;輸出 false
var b4 = list.Any(c => false);//輸出 false