ホームページ >バックエンド開発 >C++ >C# 列挙型を効率的に反復するにはどうすればよいですか?

C# 列挙型を効率的に反復するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-17 09:32:13331ブラウズ

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>

以上がC# 列挙型を効率的に反復するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。