【发布时间】:2012-03-30 20:16:15
【问题描述】:
var names = new[] {
new { Name = "John", Age = 44 },
new { Name = "Diana", Age = 45 },
new { Name = "James", Age = 17 },
new { Name = "Francesca", Age = 15}
};
for (int i = 0; i < names.Length; i++)
{
names[i].Age = 23; //-------->Error
names[i] = new { Name = "XYX", Age = 26 }; //----->Works fine
}
foreach(var name in names)
{
name.Age = 1; //-------->Error
name = new { Name = "ABC", Age = 25 }; //-------->Error
}
我有两个问题。
1. 为什么我无法更改迭代变量的 any 属性。
2. 我只能将一个新对象分配给 for 循环中的迭代变量。不在 foreach 循环中。为什么?
【问题讨论】: