C # Les paroles sont transformées en une liste de classe de base
Le mécanisme d'héritage nous permet de créer de nouvelles classes en fonction de la classe existante, mais le même concept n'est pas directement applicable aux listes génériques. Plus précisément, nous ne pouvons pas déclarer un
et attribuer une liste de types dérivés, même si la classe dérivée hérite de la classe auto-basée. Veuillez considérer l'exemple suivant:
List<基类>
<code class="language-csharp">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>(); // 编译错误 } }</code>
Méthode de conversion
La méthode de conversion en est d'itérer les éléments de la liste et de les convertir manuellement manuellement. Cela peut être implémenté en utilisant la méthode
:
List<派生类>
List<基类>
Ici, chacun des éléments de la liste C itérative le convertissez-le en type A et ajoutez-le à la nouvelle liste Listofa. ConvertAll
<code class="language-csharp">List<A> listOfA = new List<C>().ConvertAll(x => (A)x);</code>
ou, nous pouvons utiliser LINQ pour exécuter la conversion:
Ici, convertir chaque élément de la liste en type A, et
crée une nouvelle liste contenant l'élément de conversion.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!