C# 枚举解析。串锚
我有一个字符串变量,值为C# 枚举解析。串锚,c#,winforms,controls,C#,Winforms,Controls,我有一个字符串变量,值为“Top;Left”。是否可以轻松地将其解析到控件.Anchor(不使用if)中 Enum.Parse不起作用,因为Anchor可以接受一个值,例如,Top;左
“Top;Left”
。是否可以轻松地将其解析到控件.Anchor
(不使用if
)中
Enum.Parse
不起作用,因为Anchor
可以接受一个值,例如,Top;左但是,AnchorEnum
只能取Top
,或Left
,或Right
,或Bottom
,或None
使用String.Split
,分别使用Enum.TryParse
或Enum.parse
,然后,或
得到的值。没有直接的方法来解析它,但是编写这样的东西非常容易:
public static AnchorStyles Parse(string str)
{
return str.Split(';')
.Select(s => (AnchorStyles) Enum.Parse(typeof (AnchorStyles), s, true))
.Aggregate((a1, a2) => a1 | a2);
}
}
无需对每个选项进行迭代,就可以很容易地对其进行解析
var s = "Top;Left";
s = s.Replace(";", ", ");
var e = Enum.Parse(typeof(AnchorStyles), s);
唯一的问题是它必须是逗号分隔的,而不是分号。对downvoter:仅仅因为某人可能做了与你不同的事情,但取得了相同的结果,就不值得进行downvoter。
string value ="Top;Left";
var anchor =(System.Windows.Forms.AnchorStyles)Enum.Parse(typeof(System.Windows.Forms.AnchorStyles), value.Replace(";", " , "))