更新: この質問は、デザインの原則、エレガンス、意図の表現、特にデザインの選択によって他のプログラマーに送信される「シグナル」のコンテキストでお読みください。
オブジェクトのセットの 2 つの「ビュー」があります。1 つは、文字列値によってオブジェクトにインデックスを付けるディクショナリ/マップです。もう 1 つは、オブジェクトを序数 (順序付け整数) でインデックス付けするディクショナリ/マップです。オブジェクト数の信頼できる情報源として機能できるオブジェクト自体の「マスター」コレクションはありませんが、2 つの辞書には常にすべてのオブジェクトへの参照が含まれている必要があります。
新しいアイテムがセットに追加されると、参照が両方の辞書に追加され、オブジェクトの新しい合計数の影響を受けるいくつかの処理を行う必要があります。
オブジェクトのセットの現在のサイズを参照する信頼できる情報源として何を使用すればよいですか? 私のすべてのオプションには、ある次元または別の次元で欠陥があるようです. 辞書の 1 つを一貫して参照することはできますが、それは、その辞書が他の辞書よりも優れていることを示唆するものです。信頼できるリストとして機能するオブジェクトの単純なリストである 3 番目のコレクションを追加することもできますが、これにより冗長性が増します。実行中のカウントを格納するのは最も簡単に思えますが、冗長性も増し、コレクションの自己追跡カウントをオンザフライで参照するよりも脆弱です。
より小さな悪を選択することを避けることができる別のオプションはありますか、それともエレガンスの妥協を受け入れる必要がありますか?