J'appelle un appel GetData
qui a renvoyé un objet IQueryable
. J'ai utilisé le suivant LINQ SelectMany
pour filtrer et sélectionner les champs que je dois retourner un List<MyDataType>
et je reçois l'erreur suivanteImpossible de convertir le type 'System.Collections.Generic.IEnumerable <AnonymousType # 1>' en 'System.Collections.Generic.List <CUSTOM DATA TYPE>
Impossible de convertir implicitement le type System.Collections.Generic.List<AnonymousType#1>
à System.Collection.Generic.List<MyDataType>
Voici mon code
List<CASES> caseList = cs.GetData(foiaNumber).ToList();
Dictionary<int, string> NameDict =
caseList.ToDictionary(cases => cases.UID, cases => cases.NAME);
List<MyDataType> bindingGrdList =
caseList.SelectMany(x => x.ListObject)
.Select(n =>
new {
SUBMITTER_NAME = NameDict[n.UID],
NUMBER = n.UID,
DATE_SENT = n.DATE_SENT,
DATE_DUE = n.DATE_DUE,
FINAL_DETERMINATION = n.FINAL_DETERMINATION
}).ToList();
Comment réparer l'erreur AnonymousType? Merci.
Cela est utile lorsque la variable est locale à la méthode, bien que la plupart du temps le résultat sera transmis à une méthode d'appelant. –
La première version de sa question mentionnait uniquement le type 'List' pour le' bindingGrdList'. Il n'y avait aucune mention de 'MyDataType' à ce moment-là. Pour la question mise à jour, cela devrait être la manière dont Rawling a répondu. Je voudrais cependant noter que pour des choses comme les contrôles ASP.NET, cela peut être très utile, les données de liaison sont généralement de la forme 'object' qui swally n'importe quelle source de données' DataTable' ou 'IEnumerable'. Dans ces cas, il n'est pas nécessaire de créer des classes explicites. –
Ouais je le savais et j'ai voté votre réponse :-) –