首頁 > 後端開發 > C++ > 如何有效地迭代 C# 枚舉?

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

Linda Hamilton
發布: 2025-01-17 09:32:13
原創
330 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板