c# - 在 C# 中的枚举值之间迭代

标签 c# enumeration

<分区>

Possible Duplicate:
How to enumerate an enum?

假设我有一个这样的枚举:

public enum Cars
{
    Audi = 0,
    BMW,
    Opel,
    Renault,
    Fiat,
    Citroen,
    AlfaRomeo,
}

我有机会在欧宝和雪铁龙之间进行迭代吗?我想将这些值作为方法的参数。

最佳答案

这会起作用:

for(Cars car=Cars.Opel; car<=Cars.Citroen; car++)
{
  Console.WriteLine(car);
}

但你必须确保开始值小于结束值。

编辑
如果您不对开始和结束进行硬编码,而是将它们作为参数提供,则需要以正确的顺序使用它们。如果你只是切换“Opel”和“Citroen”,你将不会得到任何输出。

此外(如评论中所述)基础整数值不得包含间隙或重叠。幸运的是,如果您自己不指定值(甚至不需要“=0”),这将是默认行为。参见 MSDN :

When you do not specify values for the elements in the enumerator list, the values are automatically incremented by 1.

关于c# - 在 C# 中的枚举值之间迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10499325/

相关文章:

c# - 是否可以保证枚举的 ToString 的值是多少?

Swift:带有 switch 语句的嵌套枚举

c# - 在 .NET 5 中生成 Microsoft Fakes 程序集

c# - 如何使用 dataGridView 显示全屏网格

javascript - div内容互相覆盖

c# - 如何在 C# 中检测有效的互联网连接?

javascript - 如何限制 Kendo UI Web 上传只允许一次上传?

ruby - "map"方法在 Ruby 中有什么作用?

java - 创建 Java 枚举

javascript - 如何枚举另一个对象中的一个对象?