上一篇講了快速讀取單筆資料的方式
這次就來寫運算的方法,例如讀取最大值,最小值,加總,平均..
以往開發時常會使用count()的數量來判斷是否有資料
在LinQ內提供了另一種方法 Any() ,來更方便做判斷
Any()一樣可以選擇是否要有條件判斷,他會直接回傳一個bool
使用方式如下
var Students=new[]
{
new{name="Anne",score=87},
new{name="Bob",score=75},
new{name="Kevin",score=53},
new{name="Emma",score=89},
new{name="Steven",score=95}
};
var isItemContainA=Students.Any(s=>s.name.ToLower().Contains('a'));
var isItemContainZ=Students.Any(s=>s.name.ToLower().Contains('z'));
var isItemNotNull=Students.Any();
var ItemCountExist=Students.Count()!=0?true:false;
Console.WriteLine("student name contain a? "+isItemContainA);
Console.WriteLine("student name contain z? "+isItemContainZ);
Console.WriteLine("student have item? "+isItemNotNull);
Console.WriteLine(ItemCountExist);
比起使用count()來的方便,效能也更好(雖然人類大概無法察覺XD
再來是 Max() Min() Average() Sum()
這幾種用法,其實用法都差不多,就不多做解釋
var maxScore=Students.Max(c=>c.score);
var minScore=Students.Min(c=>c.score);
var avgScore=Students.Average(c=>c.score);
Console.WriteLine(maxScore);
Console.WriteLine(minScore);
Console.WriteLine(avgScore);