2014-01-20 31 views

回答

2

VerticalAlignment是一個枚舉,所以儘量使用Enum.Parse這樣的:

var result = (VerticalAlignment)Enum.Parse(typeof(VerticalAlignment), "top", true); 

當然,你也可以寫自己的泛型方法,使這個語法更可口:

public static T ParseEnum<T>(string stringValue) where T : struct 
{ 
    return (T)Enum.Parse(typeof(T), stringValue, true); 
} 

然後像這樣使用它:

var result = ParseEnum<VerticalAlignment>("top"); 
+0

真棒,甜蜜的期待。效果很好。感謝您的及時迴應 – ADi

1

因爲它是一個enu m使用這個

VerticAligment va = (VerticalAlignment)Enum.Parse(typeof(VerticalAlignment), "top", true); 

最後一個值是您需要使ignoreCase屬性匹配不區分大小寫。

1

你幾乎擁有了 - 你只需要指定第二個參數true忽略大小寫:

VerticalAlignment alignment; 
VerticalAlignment.TryParse("Top", true, out alignment); 
+0

+1謝謝,有沒有我可以這樣做,而無需單獨聲明對齊方式:VerticalAlignment.TryParse(「Top」,true,out VerticalAlignment alignment);我必須爲許多類型執行此操作,並聲明每個變量都對我有好處。 – ADi

+0

不幸的是,沒有。 'TryParse'生活在'Enum'類中,就像許多其他有用的方法一樣,例如一個ps.s.w.g顯示給你。如果你正在傳遞的字符串是一個有效的值(即「top」,「bottom」等),那麼他的方法是最簡單的。如果字符串有可能是古怪的,或者只是一個空字符串,那麼對'Parse'的調用將拋出一個異常,而對TryParse的調用將返回一個值,表示解析字符串時出現問題。 –

+0

謝謝,我將來會使用它 – ADi