【发布时间】:2020-05-03 21:16:12
【问题描述】:
我想返回具有特定属性的枚举成员列表。所以对于代码示例,我想要一个包含枚举 SecondValue 和 ThirdValue 的列表,但不是 FirstValue 或 FourthValue,因为它没有属性 Container。
我该怎么做?
PS:这之前被标记为重复,并带有指向此的链接: Getting attributes of Enum's value
这不是同一个问题。我制作了更多示例代码以使我的问题更清楚。查看函数定义及其应返回的内容。
[AttributeUsage(AttributeTargets.Field)]
public sealed class ContainerAttribute : Attribute
{
public string Name { get; }
public ContainerAttribute(string name)
{
Name = name;
}
}
public enum MyEnum
{
[SomeOtherAttribute("attr")]
FirstValue,
[Container("name1")]
SecondValue,
[Container("name1")]
ThirdValue,
FourthValue
}
public List<MyEnum> GetEnumsWithAttribute(Attribute value) { }
public void Main(String[] args) {
// someEnums should return list with content: [MyEnum.SecondValue, MyEnum.ThirdValue];
var someEnums = GetEnumsWithAttribute(ContainerAttribute);
}
【问题讨论】:
-
您的实际代码是什么?您尝试过什么来实现这一目标?