用Linq將成績按不同分數段進行分組

2021-06-28 12:42:59 字數 932 閱讀 8821

評教系統中有乙個模組是對教師的成績進行圖表分析。其中乙個具體的需求是:

對乙個學院所有教師的總成績進行統計分析,顯示不同分數段(0~59,60~69,70~79,80~89,90~100)各佔多少人,從而直觀地展現整個學院教師受學生歡迎程度。

我通過底層方法,返回乙個集合,這個集合中每個實體包括教師姓名,總成績等屬性。

說到分組,首先想到了groupby,但是檢視幫助文件,不能達到我的目的。

最後,終於形成了以下的linq語句。在linqpad中執行一下。

from s in evaluationassessscoreentities

orderby s.score descending//按成績降序排列

let temp1 = (s.score) / 10 //把所有成績轉化成10以內的數

let temp2 = temp1 - 5.999 //再把成績分成兩份,乙份為小於等於5.999的負數,乙份大於5.99的正數

let te*** = math.max(temp2, 0)//把上述成績中的負數轉化成0,正數不變0-1/1-2/2-3/3-4/4-5

let temp4 = (int)(69 - te***)//通過取整方式0變成69,0-1的變成68,1-2的變成67,2-3的對應66,3-4的對應65,4-5的對應64

group s by temp4 into g //更具以上5個數分組

隨機生成學生成績,並將成績按總分排序

生成一張成績單,並按照總分的大小順序排序 分析 根據題目的需求,我們可以將題目拆解成以下步驟 第一步 獲取學生的姓名 第二步 生成學生的三科成績 第三步 生成排名 第四步 組合儲存結構 第五步 輸出 1.生成乙個姓名字典dict student info 2.生成學生的成績 將生成的成績存貯在列表中...

linq中不能準確按拼音排序

在linqtoobject中,利用 orderby orderbydescending,thenby thenbydescending 這4個方法排序時,發現不能正確的按拼音排序,所以在排序時增加編碼支援 encoding enc encoding.getencoding gb2312 dict.o...

1 4 1 1 用 LINQ 處理資料

1.4.1.1 用 linq 處理資料 如果你已經在使用 linq,那麼這個示例只是提醒,但我們會用它來展示一些更重要的內容。這裡示例 處理資料,使用的是標準的命令式程式設計風格。listing 1.3 imperative data processing c ienumerablegetexpen...