Здравствуйте, 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);