使用LINQ选择列中的所有不同值

Tes*_*ter 33 c# linq csv asp.net-web-api visual-studio-2012

我在VS 2012中创建了一个Web Api.我试图从一个列"Category"中获取所有值,这是所有唯一值,我不希望列表返回重复项.

我使用此代码来获取特定类别的产品.如何获取完整的类别列表(类别列中的所有唯一值)?

public IEnumerable<Product> GetProductsByCategory(string category)
    {
        return repository.GetAllProducts().Where(
            p => string.Equals(p.Category, category, StringComparison.OrdinalIgnoreCase));
    }
Run Code Online (Sandbox Code Playgroud)

Ali*_*eza 68

要有独特的类别:

var uniqueCategories =  repository.GetAllProducts()
                                  .Select(p=>p.Category)
                                  .Distinct();
Run Code Online (Sandbox Code Playgroud)


小智 21

var uniq = allvalues.GroupBy(x => x.Id).Select(y=>y.First()).Distinct();
Run Code Online (Sandbox Code Playgroud)

简单易用