我有一个用C#编写的控制台应用程序。在我的应用程序中,我有一个像这样定义的对象:
public class Order
{
public double Price { get; set; }
public string Description { get; set; }
public int ItemCount { get; set; }
}
我在Order
中有List<Order>
个对象。我需要按照他们的价格对这些订单进行分组。但是,这些群体代表了价格范围。例如,我想要以下组:
$0 - $10
$10 - $20
$20 - $30
$30 - $40
$40 - $50
$50 - $60
$60 - $70
$70 - $80
$80 - $90
$90 - $100
最初,我只是绕过List<Order>
,但看起来很笨重。我觉得这对Linq来说是一个很好的例子,但我已经做到了。我的方法不起作用。
有没有办法根据LINQ的Price
属性将订单分组为10美元增量?
答案 0 :(得分:4)
使用整数运算和GroupBy,例如:
public class Search {
public static boolean filterByNumber(Part part, int number) {
if (part.getClass() == Inhouse.class) {
Inhouse testIn = (Inhouse) part ;
if (testIn.getMachineID() == number) {
return true ;
}
}
if((number == part.getPartID()) || (number == part.getInstock()) || (number == part.getMax())
|| ( number == part.getMin()) || ((double) number == part.getPrice())
|| (Integer.toString(number).contains(part.getName()))){
return true ;
}
return false ;
}
public static boolean filterByText(Part part, String text) {
//similarly...
}
}
答案 1 :(得分:4)
这应该有效:var groups = orders.GroupBy(order => order.Price - order.Price % 10);