从枚举中获取列表

时间:2013-09-19 20:33:11

标签: c# linq list enums

public enum MyEnum
{
    A,
    Ab,
    Abc,
    Abcd,
    Abcde
}

使用LINQ,我想从MyEnum中提取一个列表,其中包含MyEnum的所有项目,但Ab和Abc除外。

3 个答案:

答案 0 :(得分:7)

var doNotUse = new[] { MyEnum.Ab, MyEnum.Abc };
var enums = Enum.GetValues(typeof(MyEnum)).Cast<MyEnum>()
    .Where(me => !doNotUse.Contains(me))
    .ToList();

答案 1 :(得分:1)

var list = Enum.GetNames(typeof(MyEnum))
               .Where(r=> r != "Abc" && r != "Ab")
               .ToList();

输出:

foreach(var item in list)
    Console.WriteLine(item);

输出:

A
Abcd
Abcde

答案 2 :(得分:0)

你不需要linq:

    public void test()
    {
        List<MyEnum> list = new List<MyEnum>();

        foreach (MyEnum item in Enum.GetValues(typeof(MyEnum)))
        {
            list.Add(item);
        }
    }