如何从数组中删除枚举项

时间:2015-07-20 02:46:59

标签: c# .net enums

在C#中,如何从枚举数组中删除项目?

这是枚举:

public enum example
{
    Example1,
    Example2,
    Example3,
    Example4
}

以下是获取枚举的代码:

var data = Enum.GetValues(typeof(example));

如何从数据变量中删除Example2?我曾尝试使用LINQ,但我不确定是否可以这样做。

2 个答案:

答案 0 :(得分:8)

您无法将其从数组本身中删除,但您可以创建一个没有Example2项的新数组:

var data = Enum
    .GetValues(typeof(example))
    .Cast<example>()
    .Where(item => item != example.Example2)
    .ToArray();

答案 1 :(得分:5)

  

我曾尝试使用LINQ,但我不确定是否可以这样做。

如果您只想排除Example2

var data = Enum
    .GetValues(typeof(example))
    .Cast<example>()
    .Where(item => item != example.Example2);

如果您要排除两个或多个枚举

var data = Enum.GetValues(typeof(example))
    .Cast<example>()
    .Except(new example[] { example.Example2, example.Example3 });