Я часто нахожусь в ситуации, когда мне нужно выполнить операцию с набором свойств. Операция может быть чем угодно, начиная от проверки, соответствует ли конкретное свойство чему-либо в наборе, до одной итерации действий. Иногда набор генерируется динамически при вызове функции, некоторые построены с помощью простого оператора LINQ, в других случаях это жестко заданный набор, который всегда останется неизменным. Но всегда существует одна константа: набор существует только для одной операции и не имеет смысла до или после нее .
Моя проблема в том, что в моем приложении так много точек, где это необходимо, но я, кажется, очень, очень непоследователен в том, как я храню эти наборы. Некоторые из них являются массивами, некоторые списками, и только сейчас я нашел пару связанных списков. Теперь ни одна из операций, о которых я особенно беспокоюсь, не должна заботиться об индексах, размере контейнера, порядке или каких-либо других функциональных возможностях, предоставляемых каким-либо отдельным типом контейнера. Я выбрал эффективность использования ресурсов, потому что это лучшая идея, чем подбрасывание монет. Я подумал, что поскольку размер массива настроен и это очень элементарный контейнер, это может быть моим лучшим выбором, но я думаю, что лучше поспрашивать. В качестве альтернативы, если есть лучший выбор не из-за эффективности использования ресурсов, а строго как лучший выбор для такого рода ситуаций, это также было бы неплохо.