Sélectionnez Toutes les valeurs distinctes d'une colonne à l'aide de LINQ
J'ai créé une Api Web dans visual studio 2012.
Je suis en train d'essayer d'obtenir toutes les valeurs d'une colonne "Catégorie", c'est l'unique valeur, je ne veux pas la liste pour être retourné avec des doublons.
J'ai utilisé ce code pour obtenir les produits dans une catégorie particulière. Comment puis-je obtenir une liste complète des catégories (Toutes les valeurs dans la Colonne Catégorie)?
public IEnumerable<Product> GetProductsByCategory(string category)
{
return repository.GetAllProducts().Where(
p => string.Equals(p.Category, category, StringComparison.OrdinalIgnoreCase));
}
- votre question n'est pas clair pour moi, lorsque vous
get products by category
, bien sûr, leproducts
vous avez obtenu doit avoir la mêmecategory
, ce qui est distinct ici? - Oui, Ce code a été utilisé pour obtenir des produits d'une certaine catégorie, mais je voudrais le modifier pour obtenir la liste complète des catégories. GetCatgoriesList(). La catégorie est une colonne dans la table produit, donc il y aurait des valeurs en double dans la colonne en tant qu'il se rapporte à chaque produit. Je veux la liste des catégories qui sont utiliser pour classer les produits, il int tableau.
- Si donc la réponse ci-dessous devrait fonctionner, mais avec une note que le résultat obtenu est un
IEnumerable<string>
que vous pouvez parcourir pour imprimer la liste complète desdistinct Categories
. - public IEnumerable<Produit> GetAllCategory() { return référentiel.GetAllProducts() .Sélectionnez(p => p.La catégorie).Distinct(); } -- j'essaie et que j'ai toujours l'erreur de build
- Vous devez changer
public IEnumerable<Product>
àpublic IEnumerable<string>
- C'est le but de bases de données relationnelles! La conception et l'utilisation d'un
Category
/modèle de table.
Vous devez vous connecter pour publier un commentaire.
D'avoir unique Catégories:
Facile et simple
Je dois trouver des lignes distinctes avec les détails suivants
catégorie : Scountry
colonnes: countryID, countryName,est actif
Il n'y a pas de clé primaire dans cette. J'ai réussi avec l'followin requêtes
Assez intéressant, j'ai essayé les deux dans LinqPad et la variante en utilisant le groupe de Dmitry Gribkov par semble être plus rapide. (aussi le dernier distinct n'est pas nécessaire que le résultat est déjà bien distinctes.
Ma (un peu simple) le code était: