.NET
このガイドでは、Client
オブジェクトのリスト (List<Client>
) を、対応する IDic
インターフェース (List<IDic>
) のリストに変換する方法について説明します。
ダイレクト キャストが失敗する理由
派生型 (Client
など) から基本型 (IDic
) への直接キャストは、.NET で許可されています。ただし、共分散の制限があるため、その逆は簡単ではありません。 これらの制限により、基本型リストに予期せず派生型要素が含まれる可能性がある安全でない操作が防止され、型の安全性が維持されます。
効果的な変換方法
2 つの信頼できる方法で目的の変換を実現します。
1. IEnumerable<IDic>
(.NET 4 以降)
.NET 4 以降のバージョンは、IEnumerable<T>
との共分散をサポートします。 これにより、List<Client>
から IEnumerable<IDic>
への変換が可能になり、Client
オブジェクトを IDic
インスタンスとして反復できるようになります。
2.新しいリストの構築
を作成するには、新しいリストを明示的に作成し、それにインターフェイス参照を設定する必要があります。 .NET 4 では、このための List<IDic>
メソッドが提供されています。 .NET 3.5 は、ToList<T>()
の後に Cast<T>()
を使用します。ToList()
データの独立性に関する重要な注意事項
どちらの手法も個別のリストを生成し、型の安全性を維持します。 重要なのは、元の を変更しても、新しい List<Client>
は自動的には更新されません。 List<IDic>
オブジェクト自体に直接加えられた変更のみが両方のリストに表示されます。Client
以上がリストを .NET のリストに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。