C# 按枚举将uint值强制转换为具有名称的列表

C# 按枚举将uint值强制转换为具有名称的列表,c#,enums,casting,C#,Enums,Casting,我有一个枚举 enum e : uint { a = 0x00000001, b = 0x00000002, c = 0x00001000, d = 0x00002000 } 和uint v=0x00003003。 如何将0x00003003转换为字符串列表,如{'a','b','c','d'} 我试过了 Console.WriteLi

我有一个枚举

enum e : uint
        {
            a = 0x00000001,
            b = 0x00000002,                
            c = 0x00001000,
            d = 0x00002000
        }
uint v=0x00003003
。 如何将0x00003003转换为字符串列表,如
{'a','b','c','d'}

我试过了

Console.WriteLine(Enum.ToObject(typeof(e), v));

但它不打印任何内容。

我认为您必须使用位操作编写一些附加代码。我怀疑是否支持这样的操作。此外,从数值上看,此枚举似乎没有标记(位不是互斥的),因此可能存在多个组合,它们加起来可以创建相同的
uint
,因此任何此类函数都无法工作。string results=string.Join(“,Enumerable.Range(0,32)。其中(x=>((1 0))。选择(x=>((e)(1个dotNET,
[Flags]
解决了问题。您能为问题创建答案吗?我会将其标记为正确答案。非常感谢!