首页 > 后端开发 > C++ > 如何有效地迭代 C# 枚举?

如何有效地迭代 C# 枚举?

Linda Hamilton
发布: 2025-01-17 09:32:13
原创
332 人浏览过

How Can I Efficiently Iterate Through C# Enumerations?

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板