You could try something like
string enumString = "Date|Reported";
UserFilter uf = enumString.Split('|').ToList().Select(e =>
{
UserFilter u;
Enum.TryParse(e, true, out u);
return u;
}).Aggregate((u, c) => u = u | c);
I would however recomend that you change your enum to
public enum UserFilter
{
None = 1,
Date = 2,
Reported = 4
}
as if you have it your way None|Date
is the same as Date
, because 0 + 1 => 1
EDIT
As @ScottSelby stated, this would also work
UserFilter u = (UserFilter) 3;
//or 6 rather than 3 if you take my comment above into consideration