1

如果我要使用以下代码将产品选择到类名称 Products 中,我将如何添加 Where 子句 enabled=true 而不将其添加到类 Products 中?

        List<Products> lp = db.products.Select(product => new Products
        {
            Name = product.name,
            Description = product.description,
            Category = product.Category
        }).ToList();

添加.Where(x => x.enabled==true)不起作用,因为enabled不是 Products 类的一部分,只是products表的一部分。

4

5 回答 5

4
    List<Products> lp = db.products
        .Where(p => p.enabled)
        .Select(product => new Products
        {
            Name = product.name,
            Description = product.description,
            Category = product.Category
        }).ToList();

也是一个很好的实践建议,我会以单数形式命名课程,Product.

于 2013-05-22T14:46:02.240 回答
4

我假设您尝试过滤产品列表而不是表格。所以你只需要在前面加上Where. 这还有一个优点是您可以在数据库中而不是在内存中进行过滤。

List<Products> lp = db.products
.Where(p => p.enabled)
.Select(product => new Products
{
    Name = product.name,
    Description = product.description,
    Category = product.Category
}).ToList();

旁注:您应该遵循 .NET 命名约定。例如使用帕斯卡大小写属性或类名。一个类通常应该是单数的,如果你想要多个它的类型,请使用List<Product>.

于 2013-05-22T14:46:06.813 回答
2
List<Products> lp = db.products
    .Where(x => x.enabled==true)
    .Select(product => new Products
    {
        Name = product.name,
        Description = product.description,
        Category = product.Category
    }).ToList();
于 2013-05-22T14:45:17.800 回答
1
List<Products> lp = db.products.Where(product => product.enabled).
    Select(product => new Products
    {
        Name = product.name,
        Description = product.description,
        Category = product.Category
    }).ToList();
于 2013-05-22T14:45:43.770 回答
0
var filter1 = Enumerable.Range(0, 50).Where(c => c % 2 == 0).Select(c => c).ToList();

Console.WriteLine(filter1[3]);

filter1.Insert(4, 13);

foreach (var v in filter1)
{
  Console.WriteLine(v);
}
于 2013-12-17T13:50:13.947 回答