Je souhaite append conditionnellement des colonnes à la clause GroupBy mais je ne sais pas comment procéder.
J’ai 5 colonnes que je veux append groupe par instruction en fonction de l’entrée de l’utilisateur. Pour ce faire, j’ai les propriétés suivantes:
ProductId ColorId PieceId SizeId WeightId
Si une propriété a une valeur supérieure à 0, cette colonne doit être utilisée dans la clause group by.
Donc, si ProductId, ColorId et PieceId ont une valeur supérieure à 0, les valeurs suivantes doivent figurer dans le groupe suivant:
list.GroupBy(p => new { p.Product.Id, p.ColorId, p.PieceId });
Essayez quelque chose comme ça;
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();