[C#] 一個無聊的小測試關於使用 LINQ 找尋最小群體的不同寫法的測速

2022-09-21

最近跟同事討論一個有趣的議題,就是我們有一群物件,裡面我們要找到某屬性最小得群體(可能多個可能一個)

但是我的思維點跟同事竟然不一樣,這時候我就好奇了到底哪一個比較快



情境,我建立一個 User 物件,我假設 Age 1-1000 , 而且每一個 Age 都有一千人,也就是 有一百萬的資料在List 中

然後我各跑100次當作一次基準點,每一次跑我都會先做

Test1 的跑法 我先取 Age 中的 Min 在 retuen Where Age==Min

Test2 的跑法也是我同事比較常用的 先做 GroupBy 在做 Order 在 FrisrtOrDefault



結果

TEST1:00:02:35.4317340

TEST2:00:02:59.0842706

-

TEST1:00:02:29.8143663

TEST2:00:02:45.4453072

-

TEST1:00:02:13.7057643

TEST2:00:02:22.1580417

-

TEST1:00:02:11.7511305

TEST2:00:02:14.8721850

-

TEST1:00:02:12.5118789

TEST2:00:02:15.1015652

-

TEST1:00:02:02.7448763

TEST2:00:02:26.7290182


所以比較起來 第一種方法略快一點


當麻許的超技八 2014 | Donma Hsu Design.