Ни массив, ни список, ни словарь не являются правильной структурой данных для отслеживания логического состояния набора объектов. Структура, которая делает это и ничего более - HashSet<T>
. Либо T
есть в наборе, либо нет.
Он превосходит Dictionary<T, bool>
, потому что фактически поддерживает два состояния: находится ли объект в словаре или нет, и если это так, является ли его значение истинным или ложным.
Он превосходит List<T>
по двум причинам: он быстрее (хотя в вашем случае это почти наверняка будет незначительным), и это не означает, что есть какой-то смысл в порядке объектов, которые он содержит, так как порядок объектов в HashSet<T>
произвольный.