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

C#实现接收任意枚举列表并返回字符串数组的通用方法

通用枚举转字符串数组实现方案

你可以通过泛型方法实现通用化,无需借助反射就能兼容所有枚举类型,完全替代原来针对单个枚举写的重复代码:

通用方法实现

public string[] EnumListToStringArray<T>(List<T> enumList) where T : Enum
{
    // 用LINQ简化循环逻辑,和原方法核心逻辑完全一致
    return enumList.Select(item => item.ToString()).ToArray();
}

使用示例

针对你提供的枚举类型,调用方式如下:

// 处理ActivityEnum
List<ActivityEnum> activityList = new List<ActivityEnum> { ActivityEnum.ID, ActivityEnum.CAMPAIGNID };
string[] activityStrings = EnumListToStringArray(activityList);

// 处理ActivityAttributeEnum
List<ActivityAttributeEnum> attributeList = new List<ActivityAttributeEnum> { ActivityAttributeEnum.CREATEDBY, ActivityAttributeEnum.LASTUPDATEDATE };
string[] attributeStrings = EnumListToStringArray(attributeList);

方案说明

  1. 泛型约束where T : Enum:确保方法只能接收枚举类型的列表,编译时就能校验类型合法性,避免运行时错误。
  2. 无需反射:原方法的核心逻辑就是调用枚举的ToString(),泛型方法直接复用这个逻辑,性能和原方法完全一致,没有额外开销。
  3. 完全兼容600+枚举:只要是枚举类型,不管是已有的还是新增的,都可以直接传入这个方法,不需要再为每个枚举单独写重复代码。

如果后续需要扩展(比如获取枚举的数值、自定义特性值),再考虑引入反射,但当前需求下泛型方案已经足够简洁高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 16:16:05