C# 如何快速取到enum中的枚举数量

前一阵写一个代码,得取enum中的数量做循环比较,写的很坑爹,但是好用。最近又看了一个方法,真他妈机智。

方法一

用映射来取得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 @ 2017-10-10 17:20  Sooda  阅读(7750)  评论(0编辑  收藏  举报