TryGetValue y ContainsKey deberían ser bastante rápidos en ese tamaño, siempre que la clave tenga hashes bien distribuidos.
Un diccionario tiene un número indexable de "cubos". Cuando agrega o busca un valor con una clave, tomará el valor devuelto por GetHashCode(), lo bajará de nuevo para que sea menor que el número de segmentos (generalmente algo simple como módulo, pero la implementación no está definida), y mira en el cubo relevante.
El cucharón actualmente tendrá cero o más elementos. El diccionario comparará cada elemento con la clave usando .Equals().
El primer bit de encontrar el cubo correcto va a ser en tiempo constante O (1). La segunda parte de la comparación de la clave con las claves del cubo va a estar en el tiempo lineal O (n), donde n se relaciona solo con el número de elementos en ese depósito, no en toda la colección.
En general, debe haber muy pocos elementos en cada segmento (la cantidad de cubos crecerá para tratar de mantener este el caso) por lo que la operación es esencialmente un tiempo constante.
Sin embargo, si sus códigos hash están mal implementados, habrá muchas claves en el mismo cubo. La complejidad del tiempo se acercará más y más a O (n), como se puede ver al experimentar con un objeto con un GetHashCode deliberadamente malo que simplemente devuelve 0 cada vez. En el peor de los casos, es peor que una Lista, ya que una Lista también es O (n), pero el Diccionario tiene más sobrecarga.
¿Esto significa que debe preocuparse? No, incluso métodos de hashing relativamente ingenuos deberían dar resultados relativamente buenos. Si está utilizando una clave de cadena, probablemente ya sea más que suficiente. Si está utilizando un tipo incorporado simple, aún más.
Si encuentra que el acceso al diccionario es lento, debe prestar atención a esto y corregir el método GetHashCode() o crear un IEqualityComparer (que le permite definir reglas externas para GetHashCode() e Igual () para usar con diccionarios, hashsets, etc.
Lo más probable es que 3000 no sea nada, todo irá bien.
¡Pruébelo, mida y vea! – Brian