J'ai une classe abstraite (Object2D), et plusieurs classe qui hérite Object2D (DisplayObject2D par exemple)C# - itérer à travers des éléments de type donnés à l'intérieur d'une liste <T>
J'utilise une liste pour stocker toutes les références à ces objets.
J'aimerais parcourir tous les objets DisplayObject2D de cette liste.
Jusqu'à présent, le code suivant fonctionne, mais étant nouveau pour le développement C#, je voulais savoir s'il n'y avait pas de meilleure pratique de le faire:
List<Object2D> tmp = objects.FindAll(delegate(Object2D obj)
{ return obj is DisplayObject2D; });
foreach(DisplayObject2D obj in tmp)
{
...
}
Merci à l'avance!
@ZedK: +1 Bonne question: je m'intéresse à quelque chose sur lequel je travaille en ce moment. Je suis sûr que vous vous rendez compte que vous pouvez utiliser la réponse de George directement dans la boucle foreach, mais je vais le mentionner, juste au cas où: foreach (obj Object2D dans objects.OfType()) {...}: de Bien sûr, vous pouvez avoir d'autres raisons de conserver les objets filtrés dans 'tmp, vous ne voulez donc pas "tirer et oublier" le résultat du filtrage par Type. –
BillW
Oui, c'est ce que je viens de faire (après avoir ajouté l'instruction missing using "System.Linq"), tout est fait en une seule ligne, c'est parfait. Merci! –