如何将枚举转换为列表

时间:2019-05-21 12:50:59

标签: c# asp.net enumeration

这里是枚举;

Linear Allocator
Stack Allocator
Pool Allocator

我需要一个列表,其中包含D以外的所有内容, 这样,它的作品;

public enum myEnum{ A= 1, B= 2, C= 3, D= 4, }

但是当然非常丑陋。如何直接转换和过滤此枚举的D

3 个答案:

答案 0 :(得分:5)

Enum.GetValues(typeof(MyEnum)).Cast<MyEnum>().Where(x => x != MyEnum.D).ToList();

答案 1 :(得分:2)

您可以将枚举转换为列表like this

var enumList = Enum.GetValues(typeof(myEnum)).Cast<myEnum>().ToList();

要删除myEnum.D,只需调用Remove方法:

var enumList = Enum.GetValues(typeof(myEnum)).Cast<myEnum>().ToList().Remove(myEnum.D);

如评论中所述,您也可以仅添加Enums值,而不是myEnum.D

var enumList = Enum.GetValues(typeof(myEnum)).Cast<myEnum>().ToList().Where(val => val != myEnum.D);

答案 2 :(得分:1)

您可以通过调用#your code df = pd.DataFrame(data) df['count'] = 1 groups = df.groupby(['src1', 'id1', 'src2', 'score']).agg( {'id2': 'unique', 'count': 'sum'}) # Then do groups = groups.sort_values(by=['src1', 'id1', 'src2', 'score'], ascending=False) groups = groups.groupby(['src1', 'id1', 'src2',]).head(1)[groups['count']==1] id2 count src1 id1 src2 score A 222 B 9 [222] 1 111 B 10 [111] 1 https://docs.microsoft.com/en-us/dotnet/api/system.enum.getvalues?view=netframework-4.8)来获取枚举的所有值

获取所有值后,您可以排除某些不需要的值:

Enum.GetValues(type)

这将输出:

A 乙 C

https://dotnetfiddle.net/hdZmAK