我有一个小问题,我需要一些帮助。我有一个餐馆对象,其中包含:fieldsId,dishId,foodCategoryId和restaurantName。
根据我的下面的代码,我需要检查来自districtId数组输入参数,如果它在RestaurantTable中有匹配。我有一个想法我应该使用
districtId.ToList().Foreach( blah blah action )
但我使用它有困难。请指教。在此先感谢。
我的代码段:
public IEnumerable<Restaurant> GetAllRestaurants(string restaurantName
, int[] districtId
, int dishId = 0
, int foodCategoryId = 0)
{
var q = RestaurantTable.Where(restaurants => restaurants.RestaurantName.Contains(restaurantName.ToLower().Trim())
| restaurants.DishId == dishId
| restaurants.FoodCategoryId == foodCategoryId
| "For each Id's in districtId check if it has a match in restaurants.DistrictId")
return q.ToList();
}
答案 0 :(得分:1)
您可以使用Contains()
:
var q = RestaurantTable.Where(restaurant => restaurant.RestaurantName.Contains(restaurantName.ToLower().Trim())
|| restaurant.DishId == dishId
|| restaurant.FoodCategoryId == foodCategoryId
|| districtId.Contains(restaurant.DistrictId))
您还想使用||
(逻辑OR)而不是|
(二进制OR)