Je rencontre des problèmes de performances lorsque je compile pour remplir une liste tapée. Ci-dessous est mon code simplifié:Liste <T> performance de collecte de remplissage
public static List<Product> GetProducts()
{
List<Product> products = new List<Product>();
using (DbQuery query = new DbQuery()) //this is database access class
{
query.CommandText = "SELECT ProdID, ProdName,Price FROM SomeTable " ;+
using (IDataReader rdr = query.ExecuteReader())
{
while (rdr.Read())
{
Product prd = new Product();
prd.ProdID = DbQuery.ReadInt (rdr, "ProdID", -1);
prd.ProdName = DbQuery.ReadString(rdr, "ProdName", "");
prd.Price = DbQuery.ReadDouble(rdr, "Price", 0);
products.Add(prd);
}
}
}
}
J'ai également struct simple Product (ProdID, ProdName, Price).
mon problème est que cela prend 4 secondes pour exécuter GetProducts(). La requête retourne environ 600 enregistrements et il faut des millisecondes pour retourner le résultat, donc je suis sûr que le remplissage de la collection de produits prend tout ce temps. Est-ce que je fais quelque chose d'inefficace ici? S'il vous plaît, aidez. Merci, Gerda