首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >集合已修改,linq-to-objects异常

集合已修改,linq-to-objects异常
EN

Stack Overflow用户
提问于 2010-03-09 00:15:33
回答 2查看 751关注 0票数 1

当我试图找出对象列表中的一个属性是否对所有对象都相等时,我得到了一个奇怪的异常。

这是我的代码:

代码语言:javascript
复制
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框架)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-09 00:27:55

所有东西都是简单的getter吗?甚至是Dagen?我只能假设发生了一些奇怪的事情(可能是动态类型创建和静默重写,你在代码中看不到-成员是virtual吗?)。然而,为了修复它,我会尝试将细节抓取到变量中:

代码语言:javascript
复制
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);
票数 3
EN

Stack Overflow用户

发布于 2010-03-09 00:26:28

试试这个:

代码语言:javascript
复制
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
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2402729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档