计算具有特定Enum值的模型数

本文关键字:模型 Enum 计算 | 更新日期: 2023-09-27 18:28:33

我想获得具有特定枚举值的模型的数量。类似这样的东西:

  (@Model.Status == "pending").Count().tostring())

  (@Model.Status.Contains("pending").Count().tostring())

所有模型最初都会传递回来,然后按其状态进行分组。例如,@Model.Count()将返回所有型号(待定、已接受等)

放在上下文中,这个计数只会在收件箱中显示为一个数字,所以最终结果看起来像:

待定(8)已接受(3)。。。。etc

请注意,这是一个使用razor 2视图的asp.net MVC 4应用程序。

计算具有特定Enum值的模型数

您可以使用重载Count方法:

@Model.Count(m => m.Satus == YourEnum.Pending)

要计算特定条件,必须在Count方法中使用谓词,如下所示:

(@Model.Count(s => s.Status == StatusEnum.Pending).ToString())

此外,如果您的枚举名称只有string形式,则需要使用enum.Parse来获取值,如下所示:

(StatusEnum)Enum.Parse(typeof(StatusEnum), "Pending")

结果将是:

(@Model.Count(s => s.Status == (StatusEnum)Enum.Parse(typeof(StatusEnum), "Pending")).ToString())