как я могу использовать «разные» со всем моим имуществом - PullRequest
0 голосов
/ 29 октября 2019

У меня есть метод, который позволяет мне создавать список агентов. Этот список агентов содержит «Nom», «Prenom», «Matricule», «Mail».

Я использую.distinct () для их сортировки, но это учитывает только «Nom», «Prenom», "Matricule". Это не проверяет, отличаются ли электронные письма. Как мне продолжить?

Создание моего списка агентов:

private ObservableCollection<AgentMailModel> _Agents;
public ObservableCollection<AgentMailModel> Agents
{
    get
    {
        return _Agents;
    }
    set
    {
        if (value != _Agents)
        {
            _Agents = value;
            RaisePropertyChanged("Agents");
        }
    }
}

foreach (Destinataire dst in (await _dataService.GetDestinatairesAsync()))
        _TmpAgents.Add(new AgentMailModel() { Matricule = dst.Matricule, Nom = dst.Nom, Prenom = dst.Prenom, Mail = dst.Mail });

foreach (AgentModel ag in (await _dataService.GetAgentsContratsAsync()))
        _TmpAgents.Add(new AgentMailModel() { Matricule = ag.Matricule, Nom = ag.Nom, Prenom = ag.Prenom, Mail = ag.Mail });

Agents = new ObservableCollection<AgentMailModel(_TmpAgents.Distinct());

Мой список в WPF:

list

Моя база данных:

db

Как вы можете видеть:
Отображается «carré» (причина в том, что «Nom» отличается, такжеработает с другим "Prenom" или "Matricule) и только с одним" carre "(без" é ").

Distinct () не работает с моими письмами. Любые советы?

1 Ответ

2 голосов
/ 29 октября 2019

У вас есть две возможности.

Первый - создать класс IEqualityComparer и выполнить полное сравнение. Вы можете найти пример здесь .

Второй - преобразовать объекты в JSON и сделать сравнение строк вместо объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...