Re[3]: Как "схлопнуть" список?
От: sergii.p  
Дата: 03.05.24 12:33
Оценка: 6 (1)
Здравствуйте, mDmitriy, Вы писали:

D>мне непонятно, можете раскрыть?


что-то подобное
bool StringsAreSimilar(string s1, string s2) {
    if(s1 == null || s2 == null) return true;
    return s1 == s2;
}

bool ObjectsAreSimilar(Person p1, Person p2) {
    return StringsAreSimilar(p1.SurName, p2.SurName)
        && StringsAreSimilar(p1.FirstName, p2.FirstName)
        && StringsAreSimilar(p1.SecondName, p2.SecondName)
}

int MoreFull(string s1, string s2) {
    return s1 == null ? (s2 == null ? 0 : -1) : 1;
}

int MoreFull(Person p1, Person p2) {
    var f1 = MoreFull(p1.SurName, p2.SurName);
    if f1 != 0 return f1;
    var f2 = MoreFull(p1.FirstName, p2.FirstName);
    if f2 != 0 return f1;
    var f3 = MoreFull(p1.SecondName, p2.SecondName);
    if f3 != 0 return f1;
}

Person ChooseMaxFull(IEnumerable<Person> list) => list.MaxBy(p => p, MoreFull);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.