我想有条件地将列添加到GroupBy子句中,但是我不确定该怎么做。
我有5列,我想根据用户的输入在group by语句中添加。为此,我具有以下属性:
ProductId
ColorId
PieceId
SizeId
WeightId
如果任何属性的值都大于0,则需要在group by子句中使用此列。
因此,如果ProductId,ColorId和PieceId的值大于0,则分组依据中应存在以下值:
list.GroupBy(p => new { p.Product.Id, p.ColorId, p.PieceId });
最佳答案
尝试类似的东西;
var groupedList = list.GroupBy(p => new
{
ProductId = p.Product.Id > 5 ? p.Product.Id : (int?)null,
ColorId = p.ColorId > 5 ? p.ColorId : (int?)null,
PieceId = p.PieceId > 5 ? p.PieceId : (int?)null
})
.Select(x =>
new
{
x.Key.ProductId,
x.Key.ColorId,
x.Key.PieceId
}).ToList();
关于c# - Entity Framework -有条件地将列添加到分组依据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47827690/