You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何将枚举的指定值(C、E、F、H)添加到列表?

如何从枚举中筛选指定值生成列表?

给定如下枚举类型:

public enum myEnum{   
    A,
    B,
    C,
    D,
    E,
    F,
    G,
    H
}

如果使用System.Enum.GetValues(typeof(myEnum)).Cast<myEnum>().ToList()会获取所有枚举值,要仅筛选出C、E、F、H这几个值,可以用以下几种方法:

方法一:直接构造目标列表

这是最直接高效的方式,不需要遍历所有枚举值:

var targetEnums = new List<myEnum> { myEnum.C, myEnum.E, myEnum.F, myEnum.H };

方法二:LINQ筛选+集合判断

如果需要从全量枚举值中筛选,可结合LINQ的Where方法,用HashSet提升查询效率:

var allowedValues = new HashSet<myEnum> { myEnum.C, myEnum.E, myEnum.F, myEnum.H };
var listOfEnums = System.Enum.GetValues(typeof(myEnum))
                             .Cast<myEnum>()
                             .Where(e => allowedValues.Contains(e))
                             .ToList();

方法三:按枚举名称字符串筛选

如果需要基于枚举的名称字符串进行匹配,可使用如下写法:

var allowedNames = new HashSet<string> { "C", "E", "F", "H" };
var listOfEnums = System.Enum.GetValues(typeof(myEnum))
                             .Cast<myEnum>()
                             .Where(e => allowedNames.Contains(e.ToString()))
                             .ToList();

内容的提问来源于stack exchange,提问作者user2580179

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 13:36:03