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;
暫時不知道為什么會這樣,這里暫時做個記錄,看到的博友,知道其中原因的,麻煩給個解釋,不勝感激!