Es solo la implementación ingeniosa de búsqueda de cadenas mediante un ciclo anidado sobre el texto y el patrón, con el tiempo de ejecución O (n · m).
En particular, MSDN no especifica el rendimiento de este método, por lo que no es seguro asumir un mejor rendimiento.
Además, la mayoría de patrones avanzados métodos de búsqueda son muy especializados para determinados tipos de cadena y si bien no son mejores algoritmos de búsqueda de propósito general, la aplicación de una en String.IndexOf
es algo así como una optimización innecesaria.
La razón es simple: si requiere una búsqueda de patrones eficiente, entonces implementará la suya de todos modos, adaptada a medida para adaptarse a sus datos particulares. Por lo tanto, no es necesario implementar algo sofisticado en la biblioteca de propósito general.
A partir de 2016 (con el código fuente CLR Core ahora disponible), la aplicación sigue utilizando un bucle anidado ingenuo. Esto se implementa en NewApis::IndexOfString
y NewApis::FastIndexOfString
, que se llaman (a través de InternalFindNLSStringEx
) desde las funciones String.Contains
y String.IndexOf
administradas.
posible duplicado de [¿Cómo funciona String.Contains?] (Http://stackoverflow.com/questions/3769519/how-does-string-contains-work) –