BindingList et LINQ?
Je suis nouveau avec Linq et je voudrais trier certaines données qui sont dans la BindingList. Une fois que j'ai fait ma requête Linq, j'ai besoin d'utiliser la BindingList collection de lier mes données.
var orderedList = //Here is linq query
return (BindingList<MyObject>)orderedList;
Ce compilé, mais échoue dans l'exécution, quel est le truc?
OriginalL'auteur Patrick Desjardins | 2008-11-25
Vous devez vous connecter pour publier un commentaire.
Je crois qu'il n'
OriginalL'auteur leppie
Vous ne pouvez pas toujours coulé de tout type de collection dans une autre collection. En termes de quand le le compilateur vérifie la coulée, découvrez ce post sur Au moment de la compilation vs runtime casting
Cependant, vous pouvez facilement produire un
BindingList
à partir d'une énumération en faisant un peu de la plomberie vous-même. Il suffit d'ajouter le suivant de la Méthode d'Extension sur toute Énumérable type de convertir la collection dans une BindingList.C#:
VB:
OriginalL'auteur KyleMit
Que ci-dessus ne fonctionne que lorsque votre requête linq de sélectionner la projection est explicitement tapé comme MyObject plutôt que de les sélectionner de nouveau qui crée une instance d'un objet anonyme. Dans de tels cas, la typeof(orderedList.ToList()) les vents comme quelque chose qui ressemble à ceci: Système.Les Collections.Génériques.Liste<<>f__AnonymousType1>
c'est à dire: cela devrait fonctionner:
ce ne sera pas:
Dans le deuxième cas, ils typeof(suite): Système d'.Les Collections.Génériques.Liste<<>f__AnonymousType2> (le type params correspondre les propriétés définies dans votre sélectionnez projection)
référence: http://blogs.msdn.com/swiss_dpe_team/archive/2008/01/25/using-your-own-defined-type-in-a-linq-query-expression.aspx
OriginalL'auteur