Cześć! Mam sobie klasę
Car ma ona w sobie listę enumów Equipment.
Mam też Wyszukiwarkę samochodów. W której mogę zaznaczyć pola equipment.
Jak sprawdzić za pomocą linqu czy dany samochód ma w swojej liście zaznaczone przez użytkownika elementy.
Pytanie zasadnicze - czemu masz listę enumów?
No chyba lepiej niz dochodzić do czegoś np. po stringu
Cześć,
Potrzebowałbym definicję klasy (przynajmniej chciałbym zobaczyć tą listę enumów).
Czarny Kot napisał(a):
No chyba lepiej niz dochodzić do czegoś np. po stringu
Pewnie tak, ale to nadal nie wyjaśnia powodu tworzenia listy enumów.
Jeśli chodzi o możliwość ustawienia wielu wartości enuma w jednej właściwości, to stosuje się raczej maski bitowe.
Tak wygląda enum
enum Equipment {
Abs,
Rds,
Mp3,
...
}
To jest definicja enum-a, a ja chcę zobaczyć jak te enum-y stosujesz w klasie Car.
Taki mam np obiekt
new Car("Opel", new List<Equipment>() { Equipment.Abs, Equipment.Mp3});
o to chodziło?
Coś takiego:
Zakładając, że masz IList<Car> cars:
cars.Where(car => car.Equipments.Contains(equipment))
To zwróci Ci listę samochodów, które mają konkretny equipment.
equipment to pojedyńczy equipment wybrany przez usera: Equipment.
cars.Where(car => equipments.All(equipment => car.Equipments.Contains(equipment)))
To zwróci Ci listę samochodów, które zawierają wszystkie equipment z listy equipments.
equipments to lista equipment zaznaczonych przez usera: IList<Equipment>.
cars.Where(car => equipments.Any(equipment => car.Equipments.Contains(equipment)))
To zwróci Ci listę samochodów, które zawierają dowolny equipment z listy equipments.
equipments to lista equipment zaznaczonych przez usera: IList<Equipment>.
Mogłem się gdzieś pomylić, pisałem z głowy, idea jest przedstawiona, gdybyś miał problemy to pisz.
Dzięki stary za pomoc
Nie jestem stary, ale proszę =]
Teraz pozostaje jedynie zastanowić się nad tym, czemu wyposażenie samochodu jest enumem, bo sensu za wiele chyba w tym nie ma.