I have a string array which its items are string equivalent of an enum items:
enum MyEnum
{
item1,
item2,
item3,
...
}
string[] strArray = {"item2", "item3"};
How to convert strArray
from string[]
to MyEnum[]
by linq?
MyEnum[] enumArray = strArray.Select(s => Enum.Parse(typeof(MyEnum), s))
.Cast<MyEnum>()
.ToArray();
Alternatively, if those strings come from user input, you may want to use Enum.TryParse
instead.
string[] strArray = { "item2", "item3" };
MyEnum[] results = (from item in strArray
let parsed = (MyEnum) Enum.Parse(typeof (MyEnum), item)
select parsed).ToArray();
You can also skip the parsed sub step line completely ...
MyEnum[] results2 = (from item in strArray
select (MyEnum) Enum.Parse(typeof (MyEnum), item)).ToArray();