Linq 批量更新數據


最近一直在用 Linq,Linq確定很方便,提供了一大堆的函數,可是就是沒有發現 Update 函數,杯具了。

說之前先看一個博友的文章:http://www.cnblogs.com/manupstairs/archive/2012/11/27/2790114.html

我忘記了他一直在說 SelectMany ,於是問他怎么更新數據。

比如我們考試會遇到這樣的情況,凡是60分以下的同學,都再原來的分數基礎上加1,照顧一下59分的同學

博主回答我的是:teachers.SelectMany(t => t.Students).ToList().ForEach(s => s.Score = s.Score + 1);

這個確實是一種解決方法,但經過 ToList 一次后,會不會對性能有所影響?我想應該會。

后來自己慢慢摸索,發現有一種變通的方法可以解決此問題:

teachers.SelectMany(t => t.Students).Where(s=>s.Score<60).Any(s=>(s.Score+=1)>0);

原來一切都很簡單!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM