List<Person> delp = new List<Person> { new Person{ Id=1,Name="小明1",Age=11,Sign=0 }, new Person{ Id=2,Name="小明2",Age=12 ,Sign=0}, }; delp.Select(u => { u.Sign = 1; return u; }); delp.Select(u => { u.Sign = 1; return u; }).ToList();
只用select时 delp中元素sign的值并没有变,但是当tolist之后,sign的值变成了1;
select官方解释; 将序列中的每个元素投影到新表单。测试用新变量接收:
var aaa = delp.Select(u => { u.Sign = 1; return u; }); aaa.ToList();
用aaa新变量接收,但是此时aaa和delp的sign都是0;但是在下面tolist之后,aaa和delp的sign都变成了1;
暂时不知道为什么会这样,这里暂时做个记录,看到的博友,知道其中原因的,麻烦给个解释,不胜感激!