Linq to object dynamiczny warunek where

0

Witam pisze aplikacje w C# która przechowuje informacje na liście która przechowuje elementy klasy K (zawiera 1 zmienna string i 1 zmienna int). W mojej aplikacji mam 2 pole tekstowe w których mogę podać warunki(1pole do podawania liczby, drugie pole do podania słowa) dla których po naciśnięciu przycisku wyświetlą się elementy mojej listy które spełniają podane kryterium np. elementy których atrybut typu int = 0. Moje pytanie brzmi czy jest możliwość zrobienia w zapytaniach Linq warunku where który będzie się zmieniał w zależności czy dane pole tekstowe jest wypełnione . Np. podam w polu odpowiadającym za warunek dla typu int jakąs liczbe to chciał bym żeby mój warunek where wyglądał tak where p.zmiennaInt = liczba podana w polu tekstowym, jeśli zaś podam liczbę i słowo to chciał bym żeby warunek where wygladał następująco where p.zmiennaInt = podana_liczba && p.zmiennaString = podane_slowo. Czy jest możliwe zrobienie dynamicznego warunku where ?

0

Nie wystarczy if'em sprawdzającym czy zawartość pola "podane_slowo" jest null/string.empty i w zależności od tego wykonywać odpowiednie zapytanie?
(Gdybyś chciał wykorzystywać to pole jako omnibox'a to mógłbyś korzystać z warunku OR a nie AND pomiędzy porównaniami).

0

Właśnie stosowanie if'ów nie wystarczy bo w tym przypadku by starczyło(2 zmienne czyli4 if'y) ale zmiennych mam w programie więcej a stosowanie if'ów do wyboru zapytania wydaje mi się słabym pomysłem bo takich if'ów miałbym wtedy masę. W każdym zapytaniu wyświetlam to samo tylko where jest inny i staram się dojść do tego jak go podmieniać.

0

Czy jest możliwe zrobienie dynamicznego warunku where ?
Jest możliwe.

0

Dziękuje za odpowiedzi. Problem rozwiązałem, proszę zamknąć temat.

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