Witam,
Chciałbym się zapytać o sortowanie litsy obiektów mojej klasy za pomocą wyrażenia lambda po dwóch składowych.
Klasy maksymalnie uprościłem, żeby rozumieć jak to działa.
Mam taką klasę:
public class Klasa
{
int a;
bool warunek;
}
Do tego listę do której dodam obiekty poniżej
List<Klasa> lista = new List<Klasa>();
Załóżmy że mamy takie obiekty dodane do listy:
Klasa o1 = new Klasa{ a = 1, warunek = false};
Klasa o2 = new Klasa{ a = 0, warunek = true};
Klasa o3 = new Klasa{ a = -100, warunek = false};
Klasa o4 = new Klasa{ a = 56, warunek = true};
Klasa o5 = new Klasa{ a = 11, warunek = true};
I chciałbym je posortować tak aby te z wartościami false były posortowane rosnąco na początku listy.
Próbowałem je posortować tak, ale nie dawało to oczekiwanego efektu
lista.Sort((p1, p2) => p1.a.CompareTo(p2.a));
lista.Sort((p1, p2) => p1.warunek.CompareTo(p2.warunek));
Czy jest możliwość tego zrobienia? Czy tu musiał bym użyć funkcji bazodanowych?