iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 9
0
Modern Web

我的30天MVC從零到不知道多少學習筆記系列 第 9

從零開始的MVC開發-LinQ 聚合運算

  • 分享至 

  • xImage
  •  

上一篇講了快速讀取單筆資料的方式
這次就來寫運算的方法,例如讀取最大值,最小值,加總,平均..

以往開發時常會使用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);

上一篇
從零開始的MVC開發-LinQ 存取元素
下一篇
從零開始的MVC開發-LinQ 看似複雜的Aggregate自訂運算
系列文
我的30天MVC從零到不知道多少學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
wilson1966
iT邦研究生 2 級 ‧ 2019-12-30 10:25:07

原來any() 作用是判斷是否有值, 又學到一招了

我要留言

立即登入留言