我正在读取文件内容,并在像这样的确切位置获取字符串
string fileContentMessage = File.ReadAllText(filename).Substring(411, 3);
输出总是Ok
或Err
另一边是MyObject
它有这样的ContentEnum
public class MyObject
{
public enum ContentEnum { Ok = 1, Err = 2 };
public ContentEnum Content { get; set; }
}
现在,在客户端我想使用这样的代码(将我的字符串fileContentMessage
转换为Content
属性)
string fileContentMessage = File.ReadAllText(filename).Substring(411, 3);
MyObject myObj = new MyObject ()
{
Content = /// ///,
};
使用Enum.Parse()
.
var content = (ContentEnum)Enum.Parse(typeof(ContentEnum), fileContentMessage);
另外,您可以使用已经提供的Enum.Parse
答案,并将它们放在helper类中易于使用的静态方法中。
public static T ParseEnum<T>(string value)
{
return (T)Enum.Parse(typeof(T), value, ignoreCase: true);
}
并像这样使用:
{
Content = ParseEnum<ContentEnum>(fileContentMessage);
};
当你有很多(不同的)枚举需要解析时,
。NET 4.0+有一个泛型Enum。TryParse
ContentEnum content;
Enum.TryParse(fileContentMessage, out content);
看看如何使用
枚举。TryParse
转换名称的字符串表示形式或1的数值或更多枚举常量到等效枚举对象。一个参数指定操作是否区分大小写。的返回值指示转换是否成功。
或
枚举。解析
转换名称的字符串表示形式或1的数值或多个枚举常量到一个等价的枚举对象。