Erreur dans List<ObjetPerso>.Single
Bonjour,
Ma Liste contient des instances de ma classe ObjetPerso définie comme :
Code:
1 2 3 4 5 6 7 8
| public class ObjetPerso
{
private object realObject;
private int niveau,
.
.(Constructeur, accesseurs... Qui vont bien)
.
} |
Ensuite j'ai deux autre classes :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public class MaClasse1
{
private int ID,
.
.(Constructeur, accesseurs... Qui vont bien)
.
}
public class MaClasse2
{
private int ID,
.
.(Constructeur, accesseurs... Qui vont bien)
.
} |
chacune a un attribut ID.
Ensuite j'ai rempli cette liste :
Code:
1 2 3 4 5
| List<ObjetPerso> maListe = new List<ObjetPerso>();
maList.Add(new ObjetPerso(new MaClasse1(1), 1));
maList.Add(new ObjetPerso(new MaClasse1(2), 1));
maList.Add(new ObjetPerso(new MaClasse2(1), 2));
maList.Add(new ObjetPerso(new MaClasse2(2), 2)); |
Mon problème, c'est que quand j'essaie de récupérer l'objet de niveau 2, et ID 1 (Par exemple), sachant que dans mon programme il ne peux être qu'une instance de la classe maClasse2 :
Code:
objetClass2 = maList.Single(t => t.niveau == 2 && ((objetClass2)t).ID == 1);
J'ai une exception InvalidCastException :
Citation:
Impossible d effectuer un cast de l objet de type 'MaClasse1'en type 'MaClasse2'.
Vous auriez une idée sur la source de ce problème? Y a-t-il un truc qui cloche dans ma manière de procéder?
Merci!