首页 > 解决方案 > 编写正确的查询

问题描述

我有一个带有枚举的结构,并想编写一个 LINQ 查询来获取“游戏”类别中的所有产品,并且有 10 多个库存。

这就是我的代码现在的样子:

    public enum Kind {console, game, hardware}
    public struct Products
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Price { get; set; }
        public int Stock { get; set; }
        public Kind Prod;

        public Products(int id, string name, int price,int stock, Kind prod)
        {
            Id = id;
            Name = name;
            Price = price;
            Stock = stock;
            Prod = prod;
        }
    }
    static void Main(string[] args)
    {
        List < Products > test= new List<Products>();
        test.Add(new Products(123, "Xbox", 300, 2, Kind.console));
        test.Add(new Products(234, "Motherboard", 100, 11, Kind.hardware));
        test.Add(new Products(345, "Forza", 29, 20, Kind.game));
        test.Add(new Products(456, "AC", 50, 5, Kind.game));

        var x = from t in test
                 where t.Stock > 10
                 select t;
        foreach(var f in x)
        {
            Console.WriteLine(f.Name);
        }
    }
}

你们能帮我什么应该是正确的查询吗?

标签: c#.netlinq

解决方案


您可以使用以下 LINQ,

var res = test.Where(x => x.Prod == Kind.game && x.Stock > 10);

foreach (var item in res) {
    Console.WriteLine(item.Name);
}

推荐阅读