比较两个列表并获得更高的值

时间:2013-11-12 11:38:39

标签: c# linq

我有一个这样的课程:

class Order
{
    public int Shares { get; set; }
    public int Price { get; set; }
}

和两个清单:

List<Order> _buyOrder = new List<Order>();
List<Order> _sellOrder = new List<Order>();

现在我需要使用LINQ创建一个新列表,其中_buyOrder.price的所有值都高于_sellOrder.price。没有LINQ,我做了两个for循环,这很丑陋而烦人。有人能指出我正确的方向吗?

我尝试过没有成功:

var t = _buyOrder
    .Select(x => x)
    .Where(x => x.Price > _sellOrder.Select(y=>y)
    .Where(y=>y.Price));

2 个答案:

答案 0 :(得分:3)

这是你想要的吗?

var sellMax = _sellOrder.Max(y => y.Price);
var t = _buyOrder.Where(x => x.Price > sellMax);

答案 1 :(得分:1)

var max = _sellOrder.Max(x => x.Price);
var result =    from b in _buyOrder
                where b.Price > max
                select b;