ホームページ > バックエンド開発 > C++ > インデックスを使用して共変コレクションからアイテムを取得するにはどうすればよいですか?

インデックスを使用して共変コレクションからアイテムを取得するにはどうすればよいですか?

DDD
リリース: 2025-01-02 15:32:40
オリジナル
935 人が閲覧しました

How Can I Get Items from a Covariant Collection with Indexing?

共変およびインデックス付きコレクションからの項目の取得

共変コレクションではアップキャストによる項目の取得が可能ですが、多くの場合、インデックスがサポートされていません。 IEnumerable は、インデックスを作成しない共変コレクションの例です。ただし、インデックス作成とアップキャストの両方を提供する共変コレクションが必要になる場合があります。

この問題は、ICollection を実装し、Add メソッドを持つ List クラスで発生します。リストのアップキャストIList に犬以外の動物が追加され、元のコレクションの型制約に違反する可能性があります。

インデックス検索を使用した共変コレクションが必要な場合は、代替案を検討できます:

  • .NET 4.5 以降: IReadOnlyListおよび IReadOnlyCollection共変インデックス機能を提供します。リストおよび ReadOnlyCollection両方のインターフェイスを実装します。
  • カスタム共分散ラッパー: AsCovariant のような拡張メソッドを作成して IList をラップできます。そして IEnumerable のみを公開します。そしてインデクサーを取得し、インデックス作成をサポートする共変ラッパーを作成します。

以上がインデックスを使用して共変コレクションからアイテムを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート