c#遍历枚举里面的内容-获取枚举数量,取得大小

private void ScanAllPLCStatus()
        {
           foreach (OpcUtil.PLC_Sensor_Enum e in Enum.GetValues(typeof(OpcUtil.PLC_Sensor_Enum)))
            {
                Console.WriteLine(e.ToString());
              //  bool sensor_result = OpcUtil.GetSensorStatus(e);
            }
        }

 https://blog.csdn.net/weixin_34112208/article/details/94122088

方法一
用映射来取得enum中的值

public enum enums
{
    a,
    b,
    c,
}

public static void GetEnumCount()
{
    foreach (enums e in Enum.GetValues(typeof(enums)))
    {
        Debug.Log(e);
    }
}
方法二
在结尾插入一个表示结束的枚举,来取得大小,这样就避免了映射的GC开销,很精巧的方法。

public enum enums
{
    a,
    b,
    c,
    End,
}
public static void GetEnumCount()
{
    for (int i = 0; i < (int)enums.End; i++)
    {
        Debug.Log((enums)i);
    }
}

 

posted @ 2021-09-27 16:13  txwtech  阅读(1005)  评论(0编辑  收藏  举报