作者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/cn.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