Я могу оценить ваши опасения, и я чувствовал себя похожим, пока не нашел IntelliJ Idea. Я понимаю, что вы спрашивали об альтернативах текстового редактора, но вы не упомянули, пробовали ли вы Idea или нет, поэтому я подумал, что упомяну это. Я обнаружил, что это глоток свежего воздуха. Это быстрый, простой в использовании и простой в настройке. Я люблю использовать это, и мне действительно показалось, что они имели в виду меня лично, когда разрабатывали это. К сожалению, это не бесплатно, но вы можете сделать пробную версию и посмотреть, нравится ли вам это на http://www.jetbrains.com/idea/download/
Если вы действительно должны использовать текстовые редакторы, я могу рекомендовать Notepad ++ и Textpad, которые мне нравились в то или иное время.
Я сейчас использую Flex Builder 3 для какой-то работы с флексом, и я надеюсь, что вы никогда не подвергаетесь этой мерзости, или вы можете навсегда отказаться от IDE :)
Я думаю, что переключение на новый настраиваемый класс с внутренним LinkedList займет у вас всего несколько минут и будет гораздо более производительным, чем что у вас есть сейчас.
public class SpecialQueue<T>
{
LinkedList<T> list = new LinkedList<T>();
public void Enqueue(T t)
{
list.AddLast(t);
}
public T Dequeue()
{
var result = list.First.Value;
list.RemoveFirst();
return result;
}
public T Peek()
{
return list.First.Value;
}
public bool Remove(T t)
{
return list.Remove(t);
}
public int Count { get { return list.Count; } }
}
Альтернативой может быть просто оставить элементы в очереди и игнорировать их, когда вы читая с него. Примерно так:
T DequeueFiltered(HashSet<T> ignored) {
T item;
while (ignored.Contains(item = Dequeue())) {
ignored.Remove(item);
}
return item;
}