2017-07-20 5 views
-1

私はオブジェクトのリストを持っており、各オブジェクトは別のオブジェクトのリストであるプロパティを持っています。このロジック内で、最初のオブジェクトを基底クラスから継承するクラスのうちの1つにキャストしています。リスト内にあるリストの値を更新する

これは最終的なリストです。変更を加えたいと思います。

私はすでにいくつか試してみましたが、ロジックが実行されているが、完成した製品は常に変更されていないことを確認できます。

私は、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

変更をコミットしましたか? – summerGhost

+0

'Object2'は構造体かクラスですか? –

+0

@SergeyBerezovskiyクラスです – RichardMc

答えて

1

これを閉じるためにちょうど答える。私が提供した情報は、この質問に答えるには十分ではありませんでした。この問題は、2番目のリストがIEnumerableとして宣言されていることが原因であることが判明しました。それを修正したリストに変更しました。 IEnumerableがディープコピーを作成していなかったので、これが想定されています。

関連する問題