Не комментируя ваш выбор алгоритма, мы можем сказать, что он, вероятно, достаточно оптимизирован .
У вас есть O (n) find()
там;поиск отсортированного списка с помощью двоичного поиска будет O (lg n), а поиск хэш-набора (или словарь в C # 2.0) будет, например, O (1).Hash-set, очевидно, был бы подходящим вариантом, если бы вы часто вызывали эту функцию.
Но узкие места редко бывают там, где вы ожидаете их, поэтому вы задаете вопрос об этом конкретном средствечто, в конечном счете, профилирование позже фактически покажет, что большие замедления в другом месте.