Re: Как "схлопнуть" список?
От: Pavel Dvorkin Россия  
Дата: 03.05.24 11:10
Оценка: 6 (1) +1
Здравствуйте, mDmitriy, Вы писали:

D>Всем привет!

D>
D>public class Person
D>{
D>    public string SurName;
D>    public string FirstName;
D>    public string Patronymic;
D>}
D>...
D>var inputList = new List<Person>()
D>{
D>    new() { SurName = "Иванов", FirstName = "", Patronymic = "", },
D>    new() { SurName = "", FirstName = "Иван", Patronymic = "", },
D>    new() { SurName = "Иванов", FirstName = "Иван", Patronymic = "", },
D>    new() { SurName = "", FirstName = "Иван", Patronymic = "Иванович", },
D>    new() { SurName = "Иванов", FirstName = "Иван", Patronymic = "Иванович", },
D>};
D>

D>Есть более чем вероятное предположение, что все объекты из списка относятся к одному человеку.
D>Имеется ли более-менее вменяемый алгоритм, позволяющий это проверить и "схлопнуть" список в один максимально заполненный объект (как последний в списке), который и вернуть?
D>По принципу "пустое поле == заполненному или имеющему такое же значение"

D>Спасибо


D>PS. Количество элементов в списке может быть произвольным


Просто завести 3 переменные SurName,FirstName и Patronymic с начальными значениями "" и в цикле сравнивать с полями. Если переменная пуста, присваивать ей значение поля. Если не пуста — сравнивать ее с полем, при неравенстве — предположение неверно, при равенстве — ничего не делать.

После цикла создать новую Person с этими значениями, а список выкинуть.
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.