2012-11-27 2 views
1

Fondamentalement, je convertis une base de données SQL en une liste générique que je peux réussir. Mais je n'arrive pas à comprendre comment retourner l'objet liste. Je reçois une erreur qui indique une variation de - Impossible de convertir implicitement le type System.Collections.Generic.IList à System.Collections.Generic.ListImpossible de convertir implicitement le type System.Collections.Generic.IList System.Collections.Generic.List

Quelle serait la bonne façon de retourner theList comme type de liste?

public List<MyObject> GetAllMyObjects() 
{ 
    String command = "select * from names "; 
    DataTable tableResult = DataTableToList.ExecuteDataTable(command, CommandType.Text, null,connectionString); 

    IList<MyObject> theList = DataTableToList.ConvertTo<MyObject>(tableResult); 

    return // I’m not sure how to return theList here... 
} 
+4

En règle générale, vous souhaitez renvoyer les interfaces afin que les éléments soient plus lâchement couplés, et donc plus faciles à échanger. Pourquoi voulez-vous retourner une 'Liste ' spécifiquement? – tmesser

+0

@YYY Généralement, je préfère retourner le type de niveau le plus bas possible, à moins que j'obscurcisse intentionnellement quelque chose. S'ils veulent le traiter comme une interface facile s'ils ont besoin d'accéder au type de niveau inférieur (comme dans ce cas), ils doivent alors commencer à faire des choses comme lancer, ce qui pose des problèmes. – Servy

Répondre

7

Appel ToList sur votre objet theList.

+0

Cela fonctionne merci. La première réponse que j'ai eu qui a fonctionné était le retour (Liste ) theList; qui fonctionne aussi est-il une différence autre que la syntaxe? – user1842828

Questions connexes