簡體   English   中英

在C#中將Enum單行轉換為Int數組

[英]One-line converting Enum to Int array in C#

在嘗試將枚舉轉換為其值的int []時,我最初想到了冗長的步驟:

Enum.GetValues(typeof(Isolations.Enumerations.TypeSelectionScope))
.Cast<Isolations.Enumerations.TypeSelectionScope>().Select(t => (int)t).ToArray()

它有效,但是..它不是很漂亮。

我做了一些搜索,發現人們為此在多行上使用ConvertAll() 所以我嘗試內聯。

Array.ConvertAll(Enum.GetValues(typeof(Isolations.Enumerations.TypeSelectionScope)), value => (int)value)

這會產生類型錯誤,並且在其中添加一些強制轉換將使其像第一次嘗試一樣混亂。

我也嘗試了直接轉換為int[]無濟於事:

Enum.GetValues(typeof(Isolations.Enumerations.TypeSelectionScope)).Cast<int[]>()

ToArray()添加到此方法也會失敗。

那么,什么是單行解決方案呢?

Enumerable.Cast<T>遍歷一個集合並將每個項目強制轉換為T

您正在嘗試將每個實例強制轉換為int[] -您想將其強制轉換為int

.Cast<int>()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM