更新列表中列表中的值

时间:2017-07-20 13:55:00

标签: c# linq loops

我有一个对象列表,每个对象都有一个属性,它是另一个对象的列表。在这个逻辑中,我将第一个对象从基类转换为其中一个继承类。

这是我要对其进行更改的最终列表。

我已经尝试了一些事情,我可以看到逻辑正在执行,但成品始终没有改变。

我尝试过使用linq:

Object1BaseObjectList
.Cast<Object1InheritedClass>()
.ToList()
.ForEach(e => 
    e.Object2List
    .ToList()
    .ForEach(p => p.boolValue = true));

我尝试过更传统的代码:

foreach (Object1InheritedClass object1 in Object1BaseObjectList)
{
    foreach (Object2Class object2 in object1.Object2List)
    {
         object2.boolValue = true;
    }
}

就像我说的那样,两者的最终结果都没有变化。任何人都对这里出了什么问题有任何想法吗?

1 个答案:

答案 0 :(得分:1)

只是为了解决这个问题而回答。我提供的信息不足以回答这个问题。原来这个问题是由于第二个列表被声明为IEnumerable引起的。将其更改为列表更正了它。我假设这是因为IEnumerable没有创建深层副本。