Casting string to enum
本问题已经有最佳答案,请猛点这里访问。
我正在读取文件内容,并在这样的确切位置获取字符串
1 | string fileContentMessage = File.ReadAllText(filename).Substring(411, 3); |
输出始终为
另一方面,我有一个
1 2 3 4 5 6 | public class MyObject { public enum ContentEnum { Ok = 1, Err = 2 }; public ContentEnum Content { get; set; } } |
现在,在客户端,我想使用这样的代码(将字符串
1 2 3 4 5 6 | string fileContentMessage = File.ReadAllText(filename).Substring(411, 3); MyObject myObj = new MyObject () { Content = /// ///, }; |
使用
1 |
另外,您可以获取已经提供的
1 2 3 4 | public static T ParseEnum<T>(string value) { return (T)Enum.Parse(typeof(T), value, ignoreCase: true); } |
像这样使用它:
1 2 3 | { Content = ParseEnum<ContentEnum>(fileContentMessage); }; |
如果您有很多(不同的)枚举要解析,这尤其有用。
.NET 4.0+具有一般的Enum.Trparse
1 2 | ContentEnum content; Enum.TryParse(fileContentMessage, out content); |
看看用什么
枚举
Converts the string representation of the name or numeric value of one
or more enumerated constants to an equivalent enumerated object. A
parameter specifies whether the operation is case-sensitive. The
return value indicates whether the conversion succeeded.
或
枚举
Converts the string representation of the name or numeric value of one
or more enumerated constants to an equivalent enumerated object.