c#, Добавляющий Удаление (международный индекс) метод к классу Очереди.NET

Вы хотите, чтобы начальные / конечные пробелы разрешались во всей строке или вокруг каждого отдельного адреса?

Для первого вашего регулярного выражения должно быть

/^(\s*([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+([,.](([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+\s*)*$/

, а для последнего

/^(\s*([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25}\s*)+([,.](\s*([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+\s*)*$/
25
задан Alex 10 February 2009 в 05:56
поделиться

4 ответа

То, что Вы хотите, List<T> , где Вы всегда звоните RemoveAt(0) , когда Вы хотите получить объект от Queue. Все остальное - то же, действительно (звонящий Add добавил бы объект в конец Queue).

22
ответ дан casperOne 15 October 2019 в 15:16
поделиться

На самом деле это побеждает целую цель Очереди и класса, Вы в конечном счете придумаете желание, нарушают семантику FIFO в целом.

2
ответ дан Anton Gogolev 15 October 2019 в 15:16
поделиться

Кто-то, вероятно, разработает лучшее решение, но от того, что я вижу, необходимо будет возвратить новый Объект очереди в Вашем Удалять метод. Вы захотите проверить, выходит ли индекс за пределы, и я могу иметь упорядочивание объектов, добавляемых неправильно, но здесь являюсь быстрым и грязным примером, который мог быть превращен в расширение довольно легко.

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;
    }
}
6
ответ дан David Anderson 15 October 2019 в 15:16
поделиться

решение David Anderson является, вероятно, лучшим, но имеет немного служебные. Вы используете пользовательские объекты в очереди? если так, добавьте, что булевской переменной нравится отмена

, Согласовывают с Вашими рабочими, которые обрабатывают очередь, если та булевская переменная установлена, и затем пропустите ее.

1
ответ дан Community 15 October 2019 в 15:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: