C# Where子句,在某些情况下选择all
我有一个下拉列表,有“狗”、“猫”和“所有”选项 如果这只是一个'狗'或'猫',将不会有任何问题,我可以写C# Where子句,在某些情况下选择all,c#,linq,C#,Linq,我有一个下拉列表,有“狗”、“猫”和“所有”选项 如果这只是一个'狗'或'猫',将不会有任何问题,我可以写 var SelectedPets = pets.Where(x => w.species == ViewModel.SlectedDropdownListSpecies) 我的应用程序有几个下拉列表,其中有几个选项+全部 我能看到的在Linq中实现all选项的唯一方法是使用一系列if语句——如果用户选择“all”,那么Where就根本不用 我希望避免这种代码: if (ViewMo
var SelectedPets = pets.Where(x => w.species == ViewModel.SlectedDropdownListSpecies)
我的应用程序有几个下拉列表,其中有几个选项+全部
我能看到的在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")
也许:
var SelectedPets = pets.Where(x => w.species == ViewModel.SlectedDropdownlistValue || ViewModel.SlectedDropdownlistValue == "all")
我不确定这是否是一种常见的技巧,但我喜欢横向思维。我不确定这是否是一种常见的技巧,但我喜欢横向思维。