Linq przeszukujące liste w obiekcie

0

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.

0

Pytanie zasadnicze - czemu masz listę enumów?

0

No chyba lepiej niz dochodzić do czegoś np. po stringu

0

Cześć,

Potrzebowałbym definicję klasy (przynajmniej chciałbym zobaczyć tą listę enumów).

0
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.

0

Tak wygląda enum

enum Equipment {
Abs,
Rds,
Mp3,
...
}
0

To jest definicja enum-a, a ja chcę zobaczyć jak te enum-y stosujesz w klasie Car.

0

Taki mam np obiekt

new Car("Opel",  new List<Equipment>() { Equipment.Abs, Equipment.Mp3});

o to chodziło?

0

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.

0

Dzięki stary za pomoc

0

Nie jestem stary, ale proszę =]

0

Teraz pozostaje jedynie zastanowić się nad tym, czemu wyposażenie samochodu jest enumem, bo sensu za wiele chyba w tym nie ma.

1 użytkowników online, w tym zalogowanych: 0, gości: 1