請問,若我想要修正某個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中,某個屬性而已
作者:
ian90911 (xopowo)
2020-04-05 13:22:00直接下sql
你這樣寫,如果不會報錯,就表示他會幫你轉成SQL除非你的DataBase是IEnumerable而不是IQueryable如果DataBase是IQueryable,這段程式後面要加ToList()
我的例子舉的不好,我用的是object跟資料庫沒關係我只是想在list中修改某個屬性,其它屬性不變
十萬次是跑不定最多是讓他在列舉時跑十萬次或是改用非同步集合,用非同步跑那十萬次
作者:
okok24 (匿名人士)
2020-04-05 18:45:00修改屬性用linq的.ForEach就好
作者: t64141 (榕樹) 2020-04-05 22:42:00
加一個屬性 int id2 {get { return id + 2003 }}使得 id2在讀取時再運算,但是如果你需要多次巡覽 list所有成員,就不適合
SQL > UpdateRange >>>>>> FoorLoop Update
作者:
Litfal (Litfal)
2020-04-10 14:31:00這種複雜度10萬次根本小case
作者:
APTON (瑋瑋)
2020-05-25 15:41:00不放心的話,可以利用LINQPAD幫你轉成SQL看看阿