В C # дано определение класса следующим образом:
public class SomeObject
{
public String A { get; set; }
public String B { get; set; }
public String C { get; set; }
}
и учитывая набор SomeObject
s, я хочу, чтобы мое приложение могло подсчитывать количество SomeObjects, сгруппированных по любой комбинации A, B и C. Есть ли запрос LINQ, который я могу использовать для этого, или если нет, какой алгоритм я могу написать?
Учитывая это:
List<SomeObject> objects;
bool GroupByA;
bool GroupByB;
bool GroupByC;
Я хочу сгруппировать objects
по SomeObject.A, если GroupByA имеет значение true, по B, если GroupByB имеет значение true, и C, если GroupByC имеет значение true. Я понимаю, что могу сделать любой один из них по objects.GroupBy(o => o.A);
, но как мне тогда пойти и сгруппировать по B и / или C?
Надеюсь, это имеет смысл. Я надеюсь получить что-то вроде этого:
There are 10 objects with A = "Smith" and B = "London"
There are 20 objects with A = "Jones" and B = "London"
There are 44 objects with A = "Jones" and B = "Inverness"
и т.д.. и т.д. Спасибо заранее.