Bajo observaciones it, dice¿Es string.ElementAt() O (1)?
Si el tipo de fuente implementa IList, que la aplicación se utiliza para obtener el elemento en el índice especificado. De lo contrario, este método obtiene el elemento especificado.
String no implementa IList<T>
. ¿Eso significa que esta será una operación O(n)
si declaro algo como,
IEnumerable<char> myString = "stringy";
?
Esto lleva a la interesante pregunta de por qué 'string' no implementa' IList '. –
CodesInChaos
@CodeInChaos: Pensé en eso también, pero supongo que es porque las cadenas son inmutables. No puede tener esos métodos 'Add' y' Remove'. – mpen
@Ralph IList tiene una propiedad IsReadOnly. Y los métodos de mutación se implementarían explícitamente (para que no aparezcan en 'string' en sí mismos) y lanzaran una' NotSupportedException'. Aún así, creo que es un error de diseño en .net no tener interfaces de sólo lectura para Collection/List. –
CodesInChaos