我想有条件地将列添加到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/

10-11 11:15