Listy – Wyszukiwanie elementu

9) Wyszukiwanie elementu

Teraz mam problem. Mam kod do wstawienia nowego miasta na listę, ale gdzie? Jaką wartość ustawić dla Indexu dla nowego miasta, na którą pozycje je wstawić? Pomyślmy o tym.

Miasta są przechowywane na liście w kolejności malejącej populacji, i mówię, że populacja nowego miasta cityTest  wynosi 3 miliony, więc oznacza to, że muszę znaleźć pierwsze miasto o populacji poniżej 3 milionów i wstawić nowe miasto tuż przed tym miastem.

Jak mogę to zrobić?
istnieje metoda, która robi dokładnie to, czego potrzebujemy, FindIndex.

FindIndex wyszukuje od początku listy pierwszy element, który spełnia określone kryteria, a następnie zwraca indeks tego elementu.

Chcę powiedzieć, że Index równa się citys.FindIndex,
citys idzie do citys.TotalPopulation  i wynosi mniej niż 3 miliony.
Powinienem wyjaśnić, co tu robię, ponieważ jest to nieco zaawansowany C#.

FindIndex która przyjmuje jako parametr coś, co nazywa się predykatem.

Predykat jest w zasadzie wyrażeniem zwracającym wartość logiczną (prawda lub fałsz), a po tym operatorze, który wygląda jak strzałka,
jest w zasadzie wyrażenie, które zwraca prawde, jeśli miasto jest miastem o populacji mniejszej niż 3 miliony, i składnia tutaj reprezentuje tak zwane wyrażenie lambda.

Możesz myśleć o tym jako o szybkim sposobie pisania wyrażenia, które bierze cokolwiek po lewej stronie tej strzałki i zwraca to co jest po prawej stronie.

Sposób działania FindIndex polega na tym, że będzie on uruchamiał to wyrażenie po kolei na każdym elemencie listy, dopóki nie trafi na element, dla którego wyrażenie jest prawdziwe.

Zakłada się, że jest to element, którego szukamy, i zwraca indeks tego elementu, i oczywiście podany przeze mnie predykat przetestuje miasto, którego populacja jest mniejsza niż populacja nowego miasta, ponieważ to powie mi, gdzie mam wstawić nowe miasto na liście. Uruchommy kod.

Mamy 17 miast, czyli o jedno więcej niż wcześniej, więc to dobrze. I nowe miasto znajduje się we właściwej pozycji między Malopolskim na nieco ponad 3 milionach a Dolnoslaskim na poziomie nieco poniżej 3 milionów.

Cały kurs dostępny na Udemy

!!! Dodatkowo Prezent !!!

Książka „Wprowadzenie do kolekcji C#”