Enum.Parse
- это канонический способ разбора строки для получения перечисления:
MS ms = (MS) Enum.Parse(typeof(MS), "First");
но вам нужно разбить строку самостоятельно.
Однако ваше свойство в настоящее время имеет тип MS[]
- переменная value
в установщике не будет строкой. Я подозреваю, что вам нужно сделать ваше свойство строкой и проанализировать его там, сохранив результаты в MS[]
. Например:
private MS[] products;
public string ProductsList
{
get
{
return string.Join(", ", Array.ConvertAll(products, x => x.ToString()));
}
set
{
string[] names = value.Split(',');
products = names.Select(name => (MS) Enum.Parse(typeof(MS), name.Trim()))
.ToArray();
}
}
Я не знаю, нужно ли вам напрямую выставлять сам массив - это зависит от того, что вы пытаетесь сделать.