Работа над проектом, в котором есть много перечислений и множество дублированных объектов в нескольких библиотеках.Беспорядок, но давайте двигаться дальше.
У меня есть этот метод расширения, который работает при преобразовании Enum в Enum, которые имеют одинаковую позицию в enum, однако он завершается ошибкой, если имя совпадает, но позиция enumотличается
Как улучшить мой код, чтобы он получал правильное перечисление на основе совпадения имен независимо от того, где находится перечисление
Спасибо
[TestClass]
public class UnitTest1
{
[TestMethod]
public void ToEnum_convert_returnsCorrectEnum()
{
const CategoryA categoryALawyer = CategoryA.Lawyer;
var result = categoryALawyer.ToEnum<CategoryB>();
Assert.AreEqual(CategoryA.Lawyer.ToString(),result.ToString());
}
}
namespace Utilities
{
public enum CategoryA
{
Lawyer,
Developer,
Manager,
Employee,
Director,
}
public enum CategoryB
{
Director,
Manager,
Developer,
Employee,
Lawyer
}
public static class EnumExtensions
{
public static T ToEnum<T>(this Enum value)
{
return (T)Enum.ToObject(typeof(T), value);
}
}
}
РЕДАКТИРОВАТЬ
Некоторые библиотеки не контролируются, поэтому я не могу изменить порядок перечисления