Cast d'une generic liste

[Résolu]
Signaler
Messages postés
69
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
19 mars 2009
-
Messages postés
303
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
24 avril 2009
-
bonjour
est ce que quelqu'un pourrait corriger ce bout de code?
public List<string> <string> GetAllBrands()
{
List<TblBrand> ListBrand;
//cette ligne de code provoque une erreur dans le code et le cast est incorrecte
ListBrand = (List<TblBrand>)Product.GetAllObjects("Brand");
......
}
public static List<object> GetAllObjects(string ObjectName)
{
...
}
merci !!!

blueangel13</string>

4 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
pourquoi ne pas faire :

public List<string> <string> GetAllBrands()
{
List<TblBrand> ListBrand;
//cette ligne de code provoque une erreur dans le code et le cast est incorrecte
ListBrand = Product.GetAllObjects<TblBrand>("Brand");
......
}
public static List<T> GetAllObjects<T>(string ObjectName)
{
...
}

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
</string>
Messages postés
69
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
19 mars 2009

 une petite explication s'impose

blueangel13
Messages postés
69
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
19 mars 2009

comment récrire cette méthode?

public
static
List<
object> GetAllObjects(
string ObjectName){

IObjectScope scope =
ObjectScopeProvider1.ObjectScope();

string OQLQuery =
"Select * from " + ObjectName +
"Extent";

IQueryResult result = scope.GetOqlQuery(OQLQuery).Execute();

List<
object> entityCollection =
new
List<
object>();

foreach (
object entity
in result){

entityCollection.Add(entity);

}

return entityCollection;}

avec un cast correcte avec public static List<T> GetAllObjects<T>(string ObjectName)

blueangel13
Messages postés
303
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
24 avril 2009
5
Je suis pas du tout certain de ce que j'avance, mais tentons le coup

publicstatic
List<T> GetAllObjects<T>(string ObjectName)


{










IObjectScope scope = ObjectScopeProvider1.ObjectScope();





string OQLQuery = "Select * from " + ObjectName + "Extent";





IQueryResult result = scope.GetOqlQuery(OQLQuery).Execute();





List<T> entityCollection = newList<T>();





foreach (T entity in result)


{




entityCollection.Add(entity);




}










return entityCollection;


}



avec un




Eric