作者wind681201 (阿風~~)
看板C_Sharp
標題[問題] Linq Selec new
時間Sun Apr 5 13:19:42 2020
請問,若我想要修正某個list中的屬性如下
class a
{
int id{get;set;}
string name {get;set;}
}
然後我變成 List<a> d = from db in DataBase
selec {z=> new a{id = z + 1033, name =z.name}}
通常我是這樣做,但這樣,我有十萬筆的話,是不是,還是會跑十萬次?
有沒有比較有效率的做法?
同一個類別,我只想修正某個屬性而已。
這個例子可能不好,但重點是,我想修正list中,某個屬性而已
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.183.137.203 (泰國)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_Sharp/M.1586063984.A.10C.html
1F:推 ian90911: 直接下sql 04/05 13:22
2F:推 CloudyWing: 你這樣寫,如果不會報錯,就表示他會幫你轉成SQL 04/05 14:18
3F:→ CloudyWing: 除非你的DataBase是IEnumerable而不是IQueryable 04/05 14:18
4F:→ CloudyWing: 如果DataBase是IQueryable,這段程式後面要加ToList() 04/05 14:20
5F:→ wind681201: 我的例子舉的不好,我用的是object跟資料庫沒關係 04/05 15:19
6F:→ wind681201: 我只是想在list中修改某個屬性,其它屬性不變 04/05 15:21
7F:推 CloudyWing: 十萬次是跑不定最多是讓他在列舉時跑十萬次或是改用 04/05 15:38
8F:→ CloudyWing: 非同步集合,用非同步跑那十萬次 04/05 15:38
9F:→ wind681201: 非同步集合?請問是什麼? 04/05 18:02
10F:推 okok24: 修改屬性用linq的.ForEach就好 04/05 18:45
11F:→ t64141: 加一個屬性 int id2 {get { return id + 2003 }} 04/05 22:42
12F:→ t64141: 使得 id2在讀取時再運算,但是如果你需要多次巡覽 list 04/05 22:44
13F:→ t64141: 所有成員,就不適合 04/05 22:44
14F:推 vi000246: 直接改db的值吧 不然就在下sql時就先加好 04/06 10:47
15F:→ wind681201: 謝謝各位 04/06 19:55
16F:推 jinmin88: SQL > UpdateRange >>>>>> FoorLoop Update 04/09 17:01
17F:推 Litfal: 這種複雜度10萬次根本小case 04/10 14:31
18F:推 APTON: 不放心的話,可以利用LINQPAD幫你轉成SQL看看阿 05/25 15:41