2009-08-20 6 views
0

J'ai le code suivant.Comment sélectionner un sous-ensemble d'éléments d'un type anonyme IEnumerable?

MyDataContext db = MyDataContext.Create(); 
      bc = 
       db.BenefitCodes.Select(
        b => 
        new 
         { 
          BenCd = b.BenCd 
          , Description = b.BenDesc 
          , BenInterest = b.BenInterest 
          , CodeDescription = string.Format("{0} - {1}", b.BenCd, b.BenDesc) 
         }); 

je devais aller la route de type anonyme comme CodeDescription est pas une propriété de benefitCode et le client, il veut apparaître ainsi dans un dropDrownList. De toute façon ma question est comment puis-je sélectionner un sous-ensemble d'éléments de cette liste? Je dois sélectionner des éléments basés sur l'attribut BenInterest.

Donc cela retourne IEnumerable, donc j'essaye de suivre cette route et c'est là que je suis bloqué. Mon intention est de construire une nouvelle liste IEnumerable et de lui définir une source de données déroulante. Comment puis-je créer un nouvel élément Enumerable du même type anonyme contenant uniquement les éléments souhaités.

Merci pour toute aide. Cheers, ~ ck

+1

Ne pourriez-vous ajouter juste un appel à la fonction .Lorsque() avant d'appeler sélectionner? –

Répondre

3

Vous pouvez simplement utiliser:

var newCollection = bc.Where(e => e.BenInterest == 'E'); 
+0

Non. Cela renvoie IEnumerable not IEnumerable . Où n'est pas supporté. 'CodeDescription' n'est pas un champ dans la table, donc je n'ai pas de sécurité de type. – Hcabnettek

+0

mmm - bc shoudl être un IEnumerable , avec T comme type anonyme. Quel "type" sont les codes de prestations? Est-ce en utilisant LINQ to SQL, Entity framework, etc? Dans tous les cas, vous pouvez toujours créer une classe pour contenir cette information et la construire au lieu d'utiliser un type anonyme. Ensuite, vous pouvez utiliser IEnumerable.Cast pour le transformer en IEnumerable

+0

Oui LINQ to SQL. Je n'ai pas pensé à créer un cours pour ça. Ça semble être une bonne idée. J'utiliserai le même qry et ferai simplement une boucle dans mes résultats pour créer une liste fortement typée de ce dont j'ai besoin. Merci pour l'idée. – Hcabnettek

Questions connexes