我想迭代枚举属性的值,以下方法有效,但感觉很长。 .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}");
}
当然我可以创建一个实用工具方法,但如果我缺少内置方法,我宁愿使用它。