【发布时间】:2011-10-12 16:34:11
【问题描述】:
我不知道如何对这些类的列表进行分组。
public class Order
{
public int OrderId { get; set; }
public long OrderClassId { get; set; }
public int OrderTypeId { get; set; }
public int OrderSubTypeId { get; set; }
public string OrderString { get; set; }
//.. other Order stuff not relevant to question
}
我理解的基本分组。它看起来像这样(假设 orders 是 List<Order>):
var orderGroups = orders.GroupBy(x=>x.OrderClassId);
// Code to assign a unique OrderString to each group goes here
但是,具有相同 OrderClassId 且 OrderTypeId 为 123 且具有相同 OrderSubTypeId 的订单需要具有不同的 OrderString 值。
这有点令人困惑,所以这里是一个例子:
var order1 = new Order
{
OrderId = 1,
OrderClassId = 8754,
OrderTypeId = 123,
OrderSubTypeId = 7156
};
var order2 = new Order
{
OrderId = 2,
OrderClassId = 8754,
OrderTypeId = 123,
OrderSubTypeId = 7156
};
var order3 = new Order
{
OrderId = 3,
OrderClassId = 8754,
OrderTypeId = 951,
OrderSubTypeId = 35144
};
通过我的分组,所有这些都将得到相同的OrderString。但我需要order2 来获得不同的OrderString。
这可能使用 linq 吗?还是我只需要迭代所有行并手动分离符合我条件的行。
【问题讨论】: