C# Поиск в одном списке и отправка информации в другой список - PullRequest
0 голосов
/ 10 января 2020

У меня есть «Поиск по фамилии», где проблема заключается в следующем: я должен искать по фамилии в списке клиентов -> получить OIB из списка клиентов, который соответствует этой фамилии (может быть несколько человек с одинаковыми фамилиями и разными именами). идентификационный номер ") -> отправить OIB в список PoliceOsiguranja -> распечатать те / те политики, которые назначены для OIB.

Опять же, OIB - единственное, что соединяет списки PoliceOsiguranja и Klijent.

Я вставлю код, но этот код был разработан для чего-то немного отличного, когда данные хранятся в Клиенте и в PoliceOsiguranja.

                Console.WriteLine("Search by surname (2)");
                Console.WriteLine("Input surname (prezime):");
                string pPrezime = Console.ReadLine();
                List<PoliceOsiguranja> lPoliceOsiguranja = DohvatiPoliceOsiguranja();
                List<Klijent> lKlijent = DohvatiKlijente();
                int RedniBr = 1;
                    long pomocniOIB = 0;

                    foreach (var Klijent in lKlijent)
                    {
                        if (Klijent.prezime == pPrezime)
                        {
                            nPomocna = 1;
                            pomocniOIB = Klijent.OIB;
                            Console.WriteLine("Client by OIB: " + Klijent.OIB + " - " + Klijent.ime + " " + Klijent.prezime + " " + Klijent.grad);
                        }
                    }
                    Console.WriteLine("Created insurance policies:");
                    var tablica = new ConsoleTable("Order number (RedniBr). ", "Policy number", "Type of insurance", "Date", "Date", "Value");
                    foreach (var PoliceOsiguranja in lPoliceOsiguranja)
                    {
                        if (PoliceOsiguranja.OIB == pomocniOIB)
                        {
                            nPomocna = 1;
                            tablica.AddRow(RedniBr++ + ".", PoliceOsiguranja.BrojPolice, PoliceOsiguranja.VrstaOsiguranja, PoliceOsiguranja.DatumPocetka, PoliceOsiguranja.DatumIsteka, PoliceOsiguranja.Vrijednost);
                        }
                    }

1 Ответ

1 голос
/ 10 января 2020

, если я правильно понял, что вы спрашиваете:

1 - получить список OIB, соответствующий имени pPrezime

IEnumerable<long> oibList = lKlijent.Where(lk => lk.Prezime.Equals(pPrezime, StringComparison.OrdinalIgnoreCase)).Select(o => o.OIB);

2 - распечатать политику

foreach (PoliceOsiguranja policeOsiguranja in lPoliceOsiguranja)
{
   if (oibList.Contains(policeOsiguranja.OIB))
   {
     nPomocna = 1;
     tablica.AddRow(RedniBr++ +".", policeOsiguranja.BrojPolice, 
       policeOsiguranja.VrstaOsiguranja, policeOsiguranja.DatumPocetka, 
       policeOsiguranja.DatumIsteka, policeOsiguranja.Vrijednost);
   }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...