尝试转换代码以存储逗号分隔的枚举字符串

M E*_*rty 1 .net c# enums

我正在尝试转换以下内容:

public IEnumerable<string> MyProperty
{
    get
    {
        if (String.IsNullOrWhiteSpace(Record.MyProperty)) return new string[] { };
        return Record
            .MyProperty
            .Split(new[] { '.' }, StringSplitOptions.RemoveEmptyEntries)
            .Select(r => r.Trim())
            .Where(r => !String.IsNullOrEmpty(r));
    }
    set { Record.MyProperty = value == null ? null : String.Join(",", value); }
}
Run Code Online (Sandbox Code Playgroud)

处理一个enum,但我失败了(这是一个词吗?)。

我正在尝试这样的事情:

string.Split(new[] ',', Record.MyProperty).Select
    (r => (MyEnum)Enum.Parse(typeof(MyEnum), r));
Run Code Online (Sandbox Code Playgroud)

进行解析,但再次“严重失败”。

有什么指导吗?谢谢。

更新:

我正在尝试将这些数据保留为string. 因此,如果用户选择四个中的三个enums,它将保存为字符串:“Choice1,Choice2,Choice3”。

上面的代码是一个代理public string MyProperty { get; set; }

Dre*_*kes 6

您应该在传递给的数组周围添加一些大括号Split,并将其作为实例方法而不是静态方法调用。

Record.MyProperty.Split(',')
                 .Select(r => (MyEnum)Enum.Parse(typeof(MyEnum), r));
Run Code Online (Sandbox Code Playgroud)

那对你有用吗?