【发布时间】:2011-04-25 05:40:09
【问题描述】:
假设我有一个这样的业务对象,
class Employee
{
public string name;
public int id;
public string desgination;
public int grade;
}
List<Employee> lstEmp = new List<Employee>()
{
new Employee() { name="A",desgination="SE",id=1},
new Employee() { name="b",desgination="TL",id=2},
new Employee() { name="c",desgination="PL",id=3},
new Employee() { name="d",desgination="SE",id=4},
new Employee() { name="e",desgination="SSE",id=5},
};
如果我想将员工等级更新为 3,其指定为“SE”,那么我必须写这样的东西
lstEmp=lstEmp.Select(x =>
{
x.grade = (x.desgination == "SE") ? 3 : x.grade;
return x;
}).ToList();
但是在这里,当使用 select 时,它每次都会生成新的员工对象,而不是更新现有的 lstEmp,所以我必须将更新的列表重新分配给 lstEmp。
在我看来,频繁更新大型更新会影响性能。有解决办法吗?
【问题讨论】:
-
这个问题有一些很好的答案:stackoverflow.com/questions/398871/…