我面临一个场景,我必须根据许多对象过滤单个对象。
例如,我有一个Grocery对象,它包含 Fruit 和 Vegetable 属性。然后我有单独的水果和蔬菜对象。
我的目标是这样的:
var groceryList = from grocery in Grocery.ToList()
from fruit in Fruit.ToList()
from veggie in Vegetable.ToList()
where (grocery.fruitId = fruit.fruitId)
where (grocery.vegId = veggie.vegId)
select (grocery);
我面临的问题是水果和蔬菜对象是空的。 空,我的意思是他们的列表计数为 0,我只想在填充过滤器列表时应用过滤器。
由于对象为空,我也无法使用类似的东西:
var groceryList = from grocery in Grocery.ToList()
from fruit in Fruit.ToList()
from veggie in Vegetable.ToList()
where (grocery.fruitId = fruit.fruitId || fruit.fruitId == String.Empty)
where (grocery.vegId = veggie.vegId || veggie.vegId == String.Empty)
select (grocery);
所以,我打算检查水果和蔬菜列表计数......并将它们过滤为连续过滤的Grocery对象上的单独表达式。
但是有没有办法在单个查询表达式中有空对象的情况下仍然获取列表?