将字符串转换为C#中的比较操作



我的asp.net应用程序中有html选择表单:

<select class="form-control" name="ageOption" asp-for="AgeOption"  value="Equals">
<option>Equals</option>
<option>More Than</option>
<option>Less Than</option>
</select>

将来,我想创建一个使用这些值的查询​并将它们转换为比较操作

public async Task<IActionResult> Find(int age, string ageOption)
{
var users = new List<User>();
await Task.Run(() => users = session.Query<User>()
.Where(u => u.Age **ageOption** age);
}

由于您使用的是数据库查询,因此可以修改查询,然后稍后运行:

public async Task<IActionResult> Find(int age, string ageOption) {
// var users = new List<User>(); // don't do this - it creates an empty List that you immediately replace below
List<User> users;
var q = session.Query<User>();
switch (ageOption) {
case "Equal":
q = q.Where(u => u.Age == age);
break;
case "More":
q = q.Where(u => u.Age > age);
break;
case "Less":
q = q.Where(u => u.Age < age);
break;
}
await Task.Run(() => users = q.ToList());
}

最新更新