迭代枚举值

时间:2017-04-13 10:16:53

标签: c# .net enums

我想迭代枚举属性的值,以下方法有效,但感觉很长。 .net库中是否有任何内置方法或某些for loop我丢失了?

[Flags]
public enum Animals
{
    Dog     = 1,
    Cat     = 2,
    Sheep   = 4,
    Cow     = 8,
    Goat    = 16
}

var myAnimals = Animals.Dog | Animals.Sheep | Animals.Goat;

foreach (Animals animal in Enum.GetValues(typeof(Animals)))
{
    if (myAnimals.HasFlag(animal))
    {
        Console.WriteLine($"You have a {animal}");
    }
}

从句法上讲,这将是完美的。

foreach (Animals animal in myAnimals)
{
    Console.WriteLine($"You have a {animal}");
}

当然我可以创建一个实用工具方法,但如果我缺少内置方法,我宁愿使用它。

0 个答案:

没有答案