Вы можете сделать что-то вроде этого:
Определить enum
представлять вас диапазоны:
public enum PriceRange {
LessThanTen,
TenToTwenty,
MoreThanTwenty
}
Затем определить метод, подобный следующему где:
private static PriceRange ExtractRange(MyClass o) {
if (o.Price < 10)
return PriceRange.LessThanTen;
else if (o.Price <= 20)
return PriceRange.TenToTwenty;
else
return PriceRange.MoreThanTwenty;
}
вы можете сделать что-то вроде:
var groups = myObjects.GroupBy(m => ExtractRange(m));
Вы можете выводить так:
foreach(var g in grp) {
Console.WriteLine("{0} -> {1}", g.Key, string.Join(",", g.Select(o => o.ToString())));
}
Предполагая, что вы объекты ToString()
выводит что-то полезное для вас.
В каком контексте? LINQ в памяти или LINQ для какого-либо поставщика SQL? –
Вопрос немного несовместим, так как у вас есть цена 10 в двух группах. Если вы сможете более четко определить свои группы, я думаю, что решение @ StevieB сделает для вас. – Brett