Различные группы по параметрам в соответствии с различными условиями в C # - PullRequest
0 голосов
/ 22 мая 2018

У меня есть класс Person с такими свойствами, как PersonId, PersonAdress, PersonSalary

У меня есть три разных случая, когда мне нужно применить группу, для которой равно 1. Когда только PersonAdress равен нулю 2. Когда только PersonSalary равен нулю3. Когда PersonAdress и PersonSalary имеют нулевое значение.

PersonId не может быть пустым.

Вся эта информация находится в списке List personList.

Может ли кто-нибудь помочь мне здесь?

1 Ответ

0 голосов
/ 22 мая 2018

Вы должны определить анонимную лямбду, чтобы определить группировку.Но вы также можете использовать существующий метод.

List<Person> personList = ...;
var agg = personList.GroupBy(Aggregator);
foreach (var gr in agg) {
    Console.WriteLine("Group {0} has {1} persons", gr.Key, gr.Count());
}

private static int Aggregator(Person p) {
    if (p.PersonAddress == null && p.PersonSalary == null) {
        return 3;
    } else if (p.PersonSalary == null) {
        return 2;
    }
    return 1;
}
...