Кто-то, вероятно, разработает лучшее решение, но от того, что я вижу, необходимо будет возвратить новый Объект очереди в Вашем Удалять метод. Вы захотите проверить, выходит ли индекс за пределы, и я могу иметь упорядочивание объектов, добавляемых неправильно, но здесь являюсь быстрым и грязным примером, который мог быть превращен в расширение довольно легко.
public class MyQueue<T> : Queue<T> {
public MyQueue()
: base() {
// Default constructor
}
public MyQueue(Int32 capacity)
: base(capacity) {
// Default constructor
}
/// <summary>
/// Removes the item at the specified index and returns a new Queue
/// </summary>
public MyQueue<T> RemoveAt(Int32 index) {
MyQueue<T> retVal = new MyQueue<T>(Count - 1);
for (Int32 i = 0; i < this.Count - 1; i++) {
if (i != index) {
retVal.Enqueue(this.ElementAt(i));
}
}
return retVal;
}
}
А ... это было легко. В CodeCampServer есть общий класс EnumerationType. Идея проста - нам просто нужно обернуть наш объект значения перечисления модели предметной области с помощью EnumerationType, чтобы отобразить его как целое число (или что-то еще, если необходимо).
Вы также можете создать производное от IUserType и указать, как сохранять извлечение информации из определенного столбца в базе данных, сериализуя и десериализуя перечисление.
Просмотрите эту статью , чтобы получить простое объяснение основ IUserType.