我有一个使用的描述属性的枚举。我希望能够根据传入的字符串设置对象 - >属性值。如果字符串与枚举值描述之一匹配,那么应该选择该值。没有使用冗长的循环,我可以这样做吗?
public enum Rule
{
....
[Description("New Seed")]
Rule2 = 2,
....
}
什么,我希望的是像
var object = new oject{ rule = Rule.Where(r=> r.description == rulestring)}
你不能做到这一点,属性是元数据不是真实的数据(即。不是实际值)。我用我自己的'StringValueAttribute'和一些扩展方法来模拟这样的东西,但是有一些限制,你必须连接支持基础设施。 – CodingGorilla
@CodingGorilla我不明白你的意思。枚举enum值,找到具有特定描述的值不应该很难。 – CodesInChaos
@CodeInChaos他希望将'Description'属性作为'Rule'枚举的成员,你不能那样做。我所做的就是在'Enum'类型上使用一些扩展方法来提取属性(在我的例子中称为StringValueAttribute)元数据并返回它。这并不那么困难,这与他所要求的不同。它会变得有点棘手,因为你扩展了'Enum'类型而不是'Enum'的具体实现。 – CodingGorilla