我有一个下拉列表,其中包含'dog','cat'和'all'选项。
如果这只是'狗'或'猫'那就没有问题我可以写...
var SelectedPets = pets.Where(x => w.species == ViewModel.SlectedDropdownListSpecies)
我的应用程序中有几个Dropdownlists有几个选项+'all'。
我可以看到在Linq中实现all选项的唯一方法是使用一系列if语句 - 如果用户选择'all',那么Where就不用了。
我想避免这种代码:
if (ViewModel.SelectedDropdownListSpecies != 'all')
{
SelectedPets = Pets.Where(x => w.species == ViewModel.SlectedDropdownlistValue)
}
if (ViewModel.SelectedDropdownlistValue2 != 'all')
{
SelectedPets = SelectedPets.Where(x => w.colour == ViewModel.SlectedDropdownListColour)
}
有没有一种方法可以让我有一个类似于上面的Linq表达式,也以某种方式尊重'all'值。
这是一个绿地应用程序,所以我在如何实现这方面有很多摆动空间。
我无法在谷歌上找到任何东西 - 不确定要搜索什么。谢谢。
也许:
var SelectedPets = pets.Where(x => w.species == ViewModel.SlectedDropdownlistValue || ViewModel.SlectedDropdownlistValue == "all")