Нет, нет лучшего способа написать то же самое.Однако я должен сказать, что для логики, которую вы хотите (которая не является стандартным значением null
в типе Nullable), она довольно коротка.Я не думаю, что вы можете ожидать, что вы получите что-то более короткое.
Я не нахожу это особенно нечитаемым или грязным, даже если у вас было 4 или даже 10 копий этой строки друг под другом.Самое короткое, о чем я могу думать, это:
GetQuery().Where(pd => customerId == null || pd.CustomerId == customerId)
.Where(pd => customerName == null || pd.CustomerName == customerName)
.Where(pd => customerAddress == null || pd.CustomerAddress == customerAddress)
.Where(pd => customerPostcode == null || pd.CustomerPostcode == customerPostcode)
.Where(pd => customerCountry == null || pd.CustomerCountry == customerCountry)
.Where(pd => customerPhoneNumber == null || pd.CustomerPhoneNumber == customerPhoneNumber)