public IEnumerable<TouristRoute> GetTouristRoutes(string keyword, string ratingOperator, int? ratingValue)
{
IQueryable<TouristRoute> result = _context.TouristRoutes.Include(p => p.TouristRoutePictures);
//如果关键字不为空, 则使用关键词查询
if (!string.IsNullOrWhiteSpace(keyword))
{
keyword = keyword.Trim();
result = result.Where(t => t.Title.Contains(keyword));
}
if (ratingValue >= 0)
{
//switch的新语法糖
result = ratingOperator switch
{
"largerThan" => result.Where(t => t.Rating >= ratingValue),
"lessThan" => result.Where(t => t.Rating <= ratingValue),
_ => result.Where(t => t.Rating == ratingValue), //default
};
//switch (ratingOperator)
//{
// case "largerThan":
// result = result.Where(t => t.Rating >= ratingValue);
// break;
// case "lessThan":
// result = result.Where(t => t.Rating <= ratingValue);
// break;
// case "equalTo":
// result = result.Where(t => t.Rating == ratingValue);
// break;
// default:
// break;
//}
}
return result.ToList();
}
C#中 switch 语句的语法糖
最新推荐文章于 2024-06-24 19:30:07 发布