我有一个下拉列表,其中包含选项' dog',' cat'和'所有'。
如果这只是“狗”的话。或者' cat'没问题,我可以写...
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表达式,以某种方式尊重所有'值。
这是一个绿地应用程序,所以我在如何实施方面有很大的摆动空间。
我还没能在谷歌上找到任何东西 - 不确定要搜索什么。感谢。
答案 0 :(得分:3)
也许:
var SelectedPets = pets.Where(x => w.species == ViewModel.SlectedDropdownlistValue || ViewModel.SlectedDropdownlistValue == "all")