相关疑难解决方法(0)

获取任何枚举值的扩展方法

我一直在尝试创建一个扩展方法,它可以在任何枚举上工作,以返回它的值.

而不是这样做:

Enum.GetValues(typeof(BiasCode)).Cast<BiasCode>()
Run Code Online (Sandbox Code Playgroud)

这样做会很好:

new BiasCode().Values()
Run Code Online (Sandbox Code Playgroud)

如果没有新的话会更好,但这是另一个问题.

我有一个.NET小提琴,它有一个接近的解决方案(代码如下所示).此代码的问题是扩展方法正在返回List<int>.我想让它返回枚举值本身的列表.回归List<int>并不可怕; 这只是意味着我必须施展结果.

甚至可以这样做吗?我尝试使扩展方法通用,但遇到了问题.这与我能够得到的一样接近:

using System;
using System.Linq;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        foreach (int biasCode in new BiasCode().Values())
        {
            DisplayEnum((BiasCode)biasCode);
        }
    }

    public static void DisplayEnum(BiasCode biasCode)
    {
        Console.WriteLine(biasCode);    
    }
}

public enum BiasCode
{
    Unknown,
    OC,
    MPP
}

public static class EnumExtensions
{
    public static List<int> Values(this Enum theEnum)
    {
        var enumValues = new List<int>();
        foreach (int enumValue …
Run Code Online (Sandbox Code Playgroud)

c# extension-methods enums

10
推荐指数
3
解决办法
6613
查看次数

标签 统计

c# ×1

enums ×1

extension-methods ×1