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中文網其他相關文章!