我有一个产品对象,该对象具有特定的位置和该产品允许的运输方式。我要做的是按位置和允许的运输方式对产品进行分组。
例如,下面的示例数据将生成两个分组,其中一个 IDLocation = 1 和 ShipMethods 为 1,2,计数为 2,另一个是 IDLocation = 1 和 ShipMethods 为 1,2,计数为 3。
public class CartProduct
{
public int IDLocation { get; set; }
public List<int> ShipMethods { get; set; }
public List<CartProduct> GetExampleData()
{
return new List<CartProduct>() { new CartProduct() { IDLocation = 1, ShipMethods = new List<int>(){ 1, 2 } },
new CartProduct() { IDLocation = 1, ShipMethods = new List<int>(){ 1, 2 } },
new CartProduct() { IDLocation = 1, ShipMethods = new List<int>(){ 3, 4 } },
new CartProduct() { IDLocation = 1, ShipMethods = new List<int>(){ 3, 4 } },
new CartProduct() { IDLocation = 1, ShipMethods = new List<int>(){ 3, 4 } }
};
}
}
我想先看一组 IDLocation ,然后如果船舶方法是同一组,那么它们也在一起。
我已经尝试了几个版本的 group by 并选择了很多没有运气。
List<CartProduct> CPList = new CartProduct().GetExampleData();
var GroupItems = CPList.GroupBy(x => x.IDLocation) // then by ShipMethods??