2021/09/15

LINQ 與 Lambda 如何排序 nullable 值,讓 null 排在最後面


步驟分解
1.先將 NULL值 與 非NULL值 進行排序,故使用HasValue對布林值(bool)降冪的方式排序
2.接著再針對有 非NULL值 進行升冪排序,便大功告成

原始資料:
null
3
7
1
5
9
null
6
4
2
8
null

第1步驟排序完成後結果如下:
3
7
1
5
9
6
4
2
8
null
null
null

看起來就像是只把 null 值通通抓起來放到最後面,其他的則不動


第2步驟則只會對 非NULL值 進行排序
1
2
3
4
5
6
7
8
9
null
null
null


Enumerable.OrderByDescending 方法
https://docs.microsoft.com/zh-tw/dotnet/api/system.linq.enumerable.orderbydescending?view=netcore-3.1

Enumerable.ThenBy 方法
https://docs.microsoft.com/zh-tw/dotnet/api/system.linq.enumerable.thenby?view=netcore-3.1

沒有留言:

張貼留言