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, le products vous avez obtenu doit avoir la même category, 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 des distinct 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.

InformationsquelleAutor Tester | 2013-10-23