Алгоритм поиска по нескольким спискам значений c # - PullRequest
0 голосов
/ 15 мая 2018

У меня есть следующие два списка. Каждый список содержит уникальный идентификатор, идентификатор сообщения, идентификатор ответа. То, что я хочу сделать, это когда задан уникальный идентификатор, его соответствующий идентификатор сообщения и идентификатор ответа должны быть найдены в обоих списках, и если найденное значение одинаково, должно произойти и с этим идентификатором сообщения или идентификатором ответа.

List<EmailDetails> inbox_email_details = new List<EmailDetails>();
List<EmailDetails> sent_email_details = new List<EmailDetails>();

public class EmailDetails
{
    public string UniqueID { get; set; }
    public string MessageID { get; set; }
    public string ReplyID { get; set; }
}

Просмотреть списки

если я передаю уникальный идентификатор "2", это MessageID "b" и ReplyID "h" должны быть найдены в обоих списках. Здесь «б» имеют результат во 2-м списке. Затем эти значения результата также должны быть найдены.

Я знаю, что это мучительная задача, но могу ли я это сделать в любом случае?

1 Ответ

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

Как вы говорите, вы хотите искать по уникальному идентификатору, я рассматриваю уникальные средства, что в списке будет доступна только одна запись. Если вы хотите найти только одну запись, вы можете перейти с FirstOrDefault

//OP used 2 as unique ID, I added constant we can use variable as well
    EmailDetails emailDetails = inbox_email_details?.FirstOrDefault(f => f.UniqueID == "2");

Это даст экземпляр EmailDetails с uniqueId = 2, MessageID = b, replyId = h

Теперь вы хотите выполнить поиск с этим результатом, верно?

тогда сначала проверьте, присутствует ли запись или нет?затем используйте то же самое выражение linq

   if(emailDetails != null)
    {
       //Here you haven't specifically mentioned search entity
       EmailDetails result = sent_email_details?.FirstOrDefault(f => f.MessageId== emailDetails.MessageId || f.ReplyId == emailDetails.ReplyId);

    }

? до того, как .FirstOrDefault контрольный список будет нулевым или нет

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