var pp = new List<int>[3].Select(m => new Cat2() {Name="a" });
foreach (var item in pp)
{
item.Id = 1;
}
var eqw = pp.ToList();
为什么Id不会被赋值呢
var pp = new List<int>[3].Select(m => new Cat2() {Name="a" });
foreach (var item in pp)
{
item.Id = 1;
}
var eqw = pp.ToList();
为什么Id不会被赋值呢
linq有个延迟加载的性质 只有遇到ToList才会去加载数据
你在.Select返回了IEmumerable然后去枚举改变这个Cal2的值
然后你再去ToList他就执行了一遍.Select
所以你这里应该是创建了两个Ienumerable 共六个cal2对象 把前三个的id改为1 后三个的存在eqw里