繁体   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