EF Core IsDefined、GetValues、HasFlag 使用

本文通过C#代码示例介绍了如何使用Enum.IsDefined判断枚举值是否有效,Enum.GetValues获取枚举的所有值,以及Enum.HasFlag检查枚举值是否包含特定标志。示例包括BoilingPoints和DinnerItems两个枚举的用法。
摘要由CSDN通过智能技术生成

IsDefined可以用于判断传入的单个值是否属于该枚举

GetValues检索指定枚举中常量值的数组

HasFlag 可以用于判断传入的多个值是否属于该枚举

先来个例子:

public enum BoilingPoints
{ 
   Celsius = 100, 
   Fahrenheit = 212
};
[Flags]
public enum DinnerItems
{
    None = 0,
    Entree = 1,
    Appetizer = 2,
    Side = 4,
    Dessert = 8,
    Beverage = 16,
    BarBeverage = 32
}
public class Program
{
    public static void Main(String[] args)
    {
         /***
            1. Enum.IsDefined(typeof(BoilingPoints), "Celsius")
            2. Enum.IsDefined(typeof(BoilingPoints), BoilingPoints.Celsius)
            3.Enum.IsDefined(typeof(BoilingPoints), 3) 
             */
        if (Enum.IsDefined(typeof(BoilingPoints), 4))
        {
            Console.WriteLine("TRUE:所传值在枚举中!");
        }
        else
        {
           Console.WriteLine($"FALSE:所传值在枚举中!");
        }
        //GetValues
        foreach (var value in Enum.GetValues(typeof(BoilingPoints)))
        {
            Console.WriteLine($"{(int)value}, {(BoilingPoints)value}");
        }
        //HasFlag
        DinnerItems myOrder = DinnerItems.Appetizer | DinnerItems.Entree |
        DinnerItems.Beverage | DinnerItems.Dessert;
        DinnerItems flagValue = DinnerItems.Entree | DinnerItems.Beverage | DinnerItems.Dessert;
        Console.WriteLine($"{myOrder} includes {flagValue}: {myOrder.HasFlag(flagValue)}");
public static bool IsDefined (Type enumType, object value);

其中enumType是枚举类型,

其中value是可以是下面的任何一种:

  1. 类型的任何成员enumType
  2. 一个变量,其值为 type 的枚举成员enumType
  3. 枚举成员名称的字符串表示形式。字符串中的字符必须与枚举成员名称具有相同的大小写
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值