私は2つのリストを持っています:
ListA { 'A', 'B', 'C' } //ListA is DictA.Keys
ListB { 'B', 'X', 'Y' } //ListB is DictB.Keys
その場合ListA.Except(ListB)
、ExceptIterator が返され、ListB にない項目について ListA を反復処理できます。問題は、その実装が単純に ListA も使用することであるということです (何らかの理由で、違いであるアイテムの新しいコレクションが作成されると思いました)。よく考えてみると、まだ ListA をソースとして使用していることがわかりましたが、単に特殊なタイプのイテレーターを使用しているだけです。もちろん、ListA から項目を削除すると、コレクションが変更されたと不平を言います。
やりたいことを行うにはいくつかの方法が考えられます。まず、ListA をコピーして、そのコピーに対して例外を実行します。2 つ目は、while ループを実行することです。この問題に対する最善の解決策は何か、標準的なガイドラインに従うのは何か、ということだけを考えています。
もし私がこれについて間違ったやり方をしているなら、私はそれを知りたいです. 私の主な目標は、キーを比較として使用して、DictB にない DictA からすべてを削除することです。