Мне нужен набор данных, из которого я могу взять элемент или добавить элемент, но который не не заботится о порядке и не обещает его, и он будет кричать на меня, если я попытаюсь взять больше элементов, чем есть?
Оба Queue<T>
и Stack<T>
удовлетворяют этому, но они подразумевают упорядочение элементов.
Это раздражает, потому что я хочу еще кое-что сделать это RemoveWhere<T>(Func<T, bool> predicate)
. С помощью Queue<T>
или Stack<T>
я могу легко реализовать помощник для этого, удаляя элементы, пока не найду совпадение, а затем снова добавляя все обратно.
Но тогда у меня есть объект, который утверждает, что он поддерживает порядок, но нарушил этот порядок: (
Естественно, я могу решить эту проблему с помощью подходящих MethodNames, или я мог бы реализовать все это самостоятельно как пользовательскую коллекцию, поддерживаемую List<T>
.
Но прежде чем я изобрету велосипед ...
Есть ли уже коллекция, которая удовлетворяет мои потребности?
Какой-то класс Pile<T>
?