Я знаю, что в C # я могу объявить массив анонимных типов следующим образом:
var anons = new[]
{
new { name = "" , something = ""},
new { name = "", something = "" }
};
Я могу понять, что все объекты должны иметь одинаковые свойства, иначе никто не сможет перебирать их и использовать такие свойства, как:
foreach (var anon in anons)
{
Console.WriteLine(anon.name);
}
Но я не понимаю, , почему их свойства должны иметь одинаковый порядок?
Например, следующий код не будет компилироваться:
var anons = new[]
{
new { name = "" , something = ""},
new { something = "", name = "" }
};
Почему это не разрешено, поскольку в нормальном объекте свойства могут быть объявлены независимо от их порядка, и остальная часть кода может использовать их, как это происходит прямо сейчас?