Si j'ai une collection commeRechercher une collection pour un sous-type en C#/LINQ
List<SomeAbstractBaseType> someList = new List<SomeAbstractBaseType>();
Et j'ai ajouté deux types d'enfants différents à cette collection (à savoir les deux types d'enfants héritent de SomeAbstractBaseType) comme celui-ci :
someList.Add(someChildOfType1);
someList.Add(someChildOfType2);
someList.Add(someOtherChildOfType1);
someList.Add(someOtherChildOfType2);
Dites que je souhaite interroger tous les éléments de someChildOfType1. Comment puis-je faire cela, je l'ai essayé ce qui suit (qui ne compile pas, peut covert de type enfant à type parent)
List<ChildType1> temp = someList.Where(x => x.GetType() == typeof(ChildType1)).ToList();
Toute idée comment je pourrais le faire?
Je ne peux pas comprendre comment reproduire votre problème que votre code a fonctionné pour moi (pas d'erreur de compilation). Je l'ai compilé dans .NET 3.5/4.0 et tout a bien fonctionné. Dans les deux cas, vous pouvez opter pour 'Enumerable.OfType()'. –
Padel