1

私は以下を変換しようとしています:

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); }
}

に対処するenum必要がありますが、劇的に失敗しています (それは言葉ですか?)。

私はこのようなことを試みていました:

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

解析を行いますが、再び「劇的に失敗」します。

ガイダンスはありますか?ありがとう。

アップデート:

このデータを として永続化しようとしていstringます。したがって、ユーザーが 4 つのうちの 3 つを選択enumsすると、"Choice1, Choice2, Choice3" のように文字列として保存されます。

上記のコードは、public string MyProperty { get; set; }

4

1 に答える 1

5

に渡す配列の周りにいくつかの中かっこを追加しSplit、静的ではなくインスタンス メソッドとして呼び出す必要があります。

Record.MyProperty.Split(',')
                 .Select(r => (MyEnum)Enum.Parse(typeof(MyEnum), r));

それはあなたのために働きますか?

于 2013-01-15T15:49:02.663 に答える