如何在 IEnumerable 对象中执行 foreach
How to Preform foreach in a IEnumerable object
我有一个包含多个值的 IEnumerable
列表,我想 foreach
超过它的值。我有这个代码
IEnumerable<object> Place = db.Places.Select(x => new { Id = x.Id, Nam1 = x.Name1, Name2 = x.Name2);
foreach(dynamic thisPlace in Place)
{
Response.Write (thisPlace.Id)
Response.Write (thisPlace.Name1)
Response.Write (thisPlace.Name2)
}
这段代码工作正常,完成后,它抛出一个错误:
A circular reference was detected while serializing an object of type 'System.Data.Entity.DynamicProxies.Place_F6C785C74658C47ED4BFCF45D13FE7D754CCA2F688B6CBDD079244CE52B46291'."
现在的问题是如何以正确的方式将 foreach
与 IEnumerable
结合起来?
首先,你的代码不会被执行。因为您没有像代码中显示的那样将 属性 命名为 Name1
。
其次,即使你有你也应该使用var
而不是使用IEnumerable<object>
var Places = db.Places.Select(x => new { Id = x.Id, Nam1 = x.Name1, Name2 = x.Name2}).ToList();
foreach (var thisPlace in Places)
{
Response.Write(thisPlace.Id)
Response.Write(thisPlace.Name1)
Response.Write(thisPlace.Name2)
}
我有一个包含多个值的 IEnumerable
列表,我想 foreach
超过它的值。我有这个代码
IEnumerable<object> Place = db.Places.Select(x => new { Id = x.Id, Nam1 = x.Name1, Name2 = x.Name2);
foreach(dynamic thisPlace in Place)
{
Response.Write (thisPlace.Id)
Response.Write (thisPlace.Name1)
Response.Write (thisPlace.Name2)
}
这段代码工作正常,完成后,它抛出一个错误:
A circular reference was detected while serializing an object of type 'System.Data.Entity.DynamicProxies.Place_F6C785C74658C47ED4BFCF45D13FE7D754CCA2F688B6CBDD079244CE52B46291'."
现在的问题是如何以正确的方式将 foreach
与 IEnumerable
结合起来?
首先,你的代码不会被执行。因为您没有像代码中显示的那样将 属性 命名为 Name1
。
其次,即使你有你也应该使用var
而不是使用IEnumerable<object>
var Places = db.Places.Select(x => new { Id = x.Id, Nam1 = x.Name1, Name2 = x.Name2}).ToList();
foreach (var thisPlace in Places)
{
Response.Write(thisPlace.Id)
Response.Write(thisPlace.Name1)
Response.Write(thisPlace.Name2)
}