Where子句在某些情况下选择all

问题描述 投票:0回答:1

我有一个下拉列表,其中包含'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'值。

这是一个绿地应用程序,所以我在如何实现这方面有很多摆动空间。

我无法在谷歌上找到任何东西 - 不确定要搜索什么。谢谢。

c# linq
1个回答
3
投票

也许:

var SelectedPets = pets.Where(x => w.species == ViewModel.SlectedDropdownlistValue || ViewModel.SlectedDropdownlistValue == "all")
© www.soinside.com 2019 - 2024. All rights reserved.