当我试图找出对象列表中的一个属性是否对所有对象都相等时,我得到了一个奇怪的异常。
这是我的代码:
bool lvNoGuests = pvBillData.Reservering.Dagen.All(x =>
{
return x.AantalKinderen == pvBillData.Reservering.Dagen[0].AantalKinderen &&
x.AantalVolwassenen == pvBillData.Reservering.Dagen[0].AantalVolwassenen
});其思想是使用.All查看列表中的所有成员是否具有与列表中第一个条目相同的两个属性的值。
这些属性是简单的getter(不是auto属性),并且不修改任何内容。
当我执行这段代码时,我得到了一个InvalidOperationException“集合已被修改;枚举操作可能无法执行”。
有人知道为什么吗?
这些列表不是通用的XPO列表,而是类型为XPCollection (DevExpress的.net框架)。
发布于 2010-03-09 00:27:55
所有东西都是简单的getter吗?甚至是Dagen?我只能假设发生了一些奇怪的事情(可能是动态类型创建和静默重写,你在代码中看不到-成员是virtual吗?)。然而,为了修复它,我会尝试将细节抓取到变量中:
var first = pvBillData.Reservering.Dagen.First();
var kinderen = first.AantalKinderen;
var volwassenen = first.AantalVolwassenen;
bool lvNoGuests = pvBillData.Reservering.Dagen.All(
x => x.AantalKinderen == kinderen && x.AantalVolwassenen == volwassenen);发布于 2010-03-09 00:26:28
试试这个:
var eersteDag = pvBillData.Reservering.Dagen[0];
var verwachtAantalKinderen = eersteDag.AantalKinderen;
var verwachtAantalVolwassenen = eersteDag.AantalVolwassenen;
bool lvNoGuests = pvBillData.Reservering.Dagen.All(x =>
{
return x.AantalKinderen == verwachtAantalKinderen &&
x.AantalVolwassenen == verwachtAantalVolwassenen
});https://stackoverflow.com/questions/2402729
复制相似问题