C# 枚举遍历方法详解
C# 枚举提供了一种表示固定值集的结构化方式。然而,有时需要高效地遍历枚举中的值。
C# 提供了 Enum.GetValues
方法来实现此目的。此方法接受枚举类型作为参数,并返回一个包含底层值的数组。通过将此数组转换为相应的枚举类型,可以使用 foreach
循环方便地遍历枚举值。
例如,考虑以下枚举:
<code class="language-csharp">public enum Foos { A, B, C }</code>
要遍历此枚举的值,可以使用 Enum.GetValues
方法,如下所示:
<code class="language-csharp">var values = Enum.GetValues(typeof(Foos)); foreach (var value in values) { Console.WriteLine(value); }</code>
此代码将值 "A"、"B" 和 "C" 输出到控制台。
此外,C# 提供了一种方便的方法来遍历枚举值,同时确保类型安全。以下代码片段演示了如何使用 Enum.GetValues
方法的类型化版本来实现这一点:
<code class="language-csharp">var values = Enum.GetValues(typeof(Foos)).Cast<Foos>(); foreach (var value in values) { // 现在你拥有一个 Foos 类型的强类型值 }</code>
为了进一步简化枚举迭代,可以在代码库中定义一个辅助函数。例如:
<code class="language-csharp">public static class EnumUtil { public static IEnumerable<T> GetValues<T>() { return Enum.GetValues(typeof(T)).Cast<T>(); } }</code>
然后可以使用此辅助函数来遍历枚举值,如下所示:
<code class="language-csharp">var values = EnumUtil.GetValues<Foos>(); foreach (var value in values) { // 在这里,你可以访问 Foos 枚举的值 }</code>
以上是如何有效地迭代 C# 枚举?的详细内容。更多信息请关注PHP中文网其他相关文章!