【发布时间】:2021-02-01 09:56:49
【问题描述】:
我尝试了以下建议,但没有任何效果,并且我编辑了代码以使其更容易。 这段代码的目的是根据枚举获取数据所在的行。
例如:如果我为搜索提供值“bra”,那么想要的结果应该是来自 enum 的巴西,但由于 enum 是一个 int,那么就像我在说如果我们假设选择 location = 3 的数据枚举中的那个巴西=3。
public LocationType Location { get; set; }
public enum LocationType
{
brazil,
USA,
UK
}
public async Task<IActionResult> Index(string id, [FromForm] string search)
if (!string.IsNullOrWhiteSpace(search))
{
result = applicationDbContext.Where(x => x.Location.ToString().Contains(search)).ToList();
}
注意:搜索是字符串输入。
【问题讨论】:
-
我不确定,但也许这可以帮助你 - link
-
“不认识”是什么意思?你期望什么输出,你会得到什么?
-
我认为您错过了,枚举是 int 类型,您可以使用
Enum.GetName(typeof(LocationType), x.Location)并将转换为字符串的 int 与 char 进行比较,最终结果为 false。 -
Location 的价值如何?
-
(char)locs确实不是您期望的那样。枚举只不过是一个 int,因此它可以直接转换为 char。 但是(char)1不是字母A,而是一个ASCII控制码。不过,A的字母代码是 65。
标签: c# asp.net-mvc