ホームページ > バックエンド開発 > C++ > 派生クラスのリストをC#の基本クラスのリストに変換する方法は?

派生クラスのリストをC#の基本クラスのリストに変換する方法は?

Mary-Kate Olsen
リリース: 2025-02-01 17:41:10
オリジナル
1070 人が閲覧しました

How to Convert a List of Derived Classes to a List of Base Classes in C#?

c#歌詞はベースクラスのリストに変換されます

継承メカニズムにより、既存のクラスに基づいて新しいクラスを作成できますが、同じ概念は汎用リストに直接適用できません。具体的には、派生クラスが自己ベースのクラスを継承している場合でも、a

を宣言し、派生型のリストを割り当てることはできません。次の例を検討してください:

List<基类> コンパイラはCオブジェクトのリストではなく、Aオブジェクトのリストを期待するため、このコードはコンパイル中に失敗します。この問題を解決するには、派生オブジェクトのリストをベースオブジェクトのリストに変換する必要があります。

interface A { }

class B : A { }

class C : B { }

class Test
{
    static void Main(string[] args)
    {
        A a = new C(); // 正确
        List<A> listOfA = new List<C>(); // 编译错误
    }
}
ログイン後にコピー
<换>変換方法

<换>に変換する方法は、リスト要素を反復し、手動で手動で変換することです。これは、メソッド:を使用して実装できます

ここでは、反復Cリストの各要素がタイプAに変換し、新しいListOFAリストに追加します。 List<派生类> List<基类> linq < ConvertAllまたは、linqを使用して変換を実行できます。

List<A> listOfA = new List<C>().ConvertAll(x => (A)x);
ログイン後にコピー
ここで、リスト内の各要素をタイプaに変換し、

に変換要素を含む新しいリストを作成します。

以上が派生クラスのリストをC#の基本クラスのリストに変換する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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