Linq lambda pobierz wszystkie jeżeli warunki nie są spełnione

Linq lambda pobierz wszystkie jeżeli warunki nie są spełnione
AD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 39
0

Witam
Mam taki problem. Mam gridView (używam kontrolek DevExpress, ale to bez znaczenia), w którym wyświetlane są jakieś rekordy. Potrzebuję sortować te rekordy po osobach i operacjach. To znaczy mogę wyświetlać - wszystkie operacje dla wszystkich osób, wszystkie operacje dla konkretnej osoby, konkretna operacja dla wszystkich osób i konkretna operacja dla konkretnej osoby. Binduje odpowiednie klasy do kontrolek comboBox oraz pod id = 0 wprowadza "Wszystkie operacje" oraz "Wszystkie osoby". Wcześniej zrobiłem to na instrukcjach warunkowych, ale nie podoba mi się to rozwiązanie, ponieważ jak dojdzie nowy comboBox to nie będę dodawał wiecznie nowych instrukcji warunkowych. Pytanie jak to rozwiązać przy wykorzystaniu LINQ i wyrażeń lambda. Próbowałem takie coś, ale wyświetla rekordy dopiero jak wybiorę osobę oraz operację.

Kopiuj
Person selectedPerson = (Person)comboBoxEditPersons.SelectedItem;
Operation selectedOperation = (Operation)comboBoxEditOperations.SelectedItem;

this.gridControl1.DataSource = StaticData.SourceGridData
            .Where(x =>  (x.Person.PersonID == selectedPerson.PersonID &&  selectedPerson.PersonID !=0))
            .Where(x =>  (x.Operation.OperationID == selectedOperation.OperationID &&  selectedOperation.OperationID !=0))
            .ToList();
mariano901229
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 597
2
Kopiuj
this.gridControl1.DataSource = StaticData.SourceGridData
            .Where(x =>  x.Person.PersonID !=0 ?  x.Person.PersonID == selectedPerson.PersonID :true)
            .Where(x =>  x.Operation.OperationID !=0 ? x.Operation.OperationID == selectedOperation.OperationID :true )
            .ToList();
 

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.