using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Cosmos.Build.Common {
public class EnumValue {
///
/// Parse string to enumeration.
///
/// Type of enumeration to use.
/// Value which should be parsed as the enumeration.
/// Default value to use, if input string contains invalid value.
/// Parsed value, or default value if input string is invalid.
public static T Parse(string value, T @default)
where T: struct
{
T result = @default;
Type valueType = typeof(T);
if (valueType.IsEnum == false)
{
throw new ArgumentException("Enum types only supported.", "T");
}
if (String.IsNullOrEmpty(value) == false)
{
Enum.TryParse(value, true, out result);
}
return result;
}
public static EnumValue Find(System.Collections.IEnumerable items, Enum value)
{
foreach (Object item in items)
{
if (item is EnumValue)
{
if (Object.Equals(((EnumValue)item).Value, value) == true)
{ return (EnumValue)item; }
}
}
return null;
}
public static EnumValue[] GetEnumValues(Type enumType, bool aSort) {
if (!enumType.IsEnum) {
throw new Exception("Invalid type, only enum types allowed.");
}
var xList = new List();
IEnumerable