Ну, раз так
вяло пошлоАвтор: Sinix
Дата: 25.04.16
— упростим ещщё.
public enum SomeEnum { A, B, C }
public struct MyStruct : IEquatable<MyStruct>, IComparable<MyStruct>
{
public SomeEnum MyField { get; }
public MyStruct(SomeEnum myField)
{
MyField = myField;
}
public bool Equals(MyStruct other)
{
return MyField.Equals(other.MyField);
}
public int CompareTo(MyStruct other)
{
return other.MyField.CompareTo(MyField);
}
public override bool Equals(object obj)
{
return obj is MyStruct && Equals((MyStruct)obj);
}
public override int GetHashCode()
{
return MyField.GetHashCode();
}
}
Как всегда, вопрос стандартный: где я налажал и как с этим жить

В смысле, найти-поправить косяки в плане производительности. Желательно с пруфами в виде циферок, а то весь педагогический эффект пропадает
Просьбы тож стандартные:
1. Спойлеры — под кат!

2. Подключайтесь

Не всё ж мне одному вопросы выдумывать