2009-05-05 9 views
2

J'ai une sélection simple d'un ensemble de données typé:LINQ: quel est le type d'un résultat?

var productlist = from prds in dsProducts.sk_products.AsEnumerable() 
          join prdcat in dsProducts.sk_productscategories.AsEnumerable() on prds.Field<int>("productid") equals prdcat.Field<int>("productid") where prdcat.Field<int>("categoryid") == categoryid 
          select prds; 

Où est productlist ensemble d'enregistrements provenant des sk_products du Dataset DataTable. Je voudrais écrire une fonction pour filtrer les enregistrements plus, avec une distincte sur l'un de ses colonnes:

public List<string, string> GetDistinctManufacturerList(? productlist, int manufacturerid) 
    { 
     manufacturers = from prdz in productlist where prdz.Field<int>("manufacturerid") == manufacturerid select prdz; [...] 
    } 

Avec quel type d'objet dois-je faire référence à la variable productlist?

+0

Adam avait un commentaire à propos de .AsEnumerable(), il est nécessaire ici car il s'agit d'un ensemble de données déconnecté stocké dans xml. – balint

Répondre

2

Son un type de données __gVirt_NP_NN_NNPS<__ sélectionné IEnumberable < > - le type de données sélectionné pourrait être un type anonyme, ou dans ce cas, sera votre classe de type de données.

+0

IEnumerable était la réponse, merci! – balint

1

Je deviner quelque chose comme IEnumerable<Product>. Et comme ck says, le produit est le nom de votre classe de données LINQ.

0

Dans votre premier exemple ... passez la souris sur le mot "var" dans Visual Studio, et il affichera le "Type". Si c'est quelque chose comme 'anonymouse {blahblah}' ... alors vous devrez probablement créer une classe que vous voulez convertir afin que vous puissiez l'utiliser comme un paramètre de fonction.

Questions connexes