Analizar sin división de cadena

Esta es una consecuencia de la discusión enalguna otra pregunta.

Supongamos que tengo que analizar una gran cantidad de cadenas muy largas. Cada cadena contiene una secuencia dedoubles (en representación de texto, por supuesto) separados por espacios en blanco. Necesito analizar eldoubles en unList<double>.

La técnica de análisis estándar (utilizandostring.Split + double.TryParse) parece ser bastante lento: para cada uno de los números necesitamos asignar una cadena.

Traté de hacerlo antiguo como C: calcule los índices del principio y el final de las subcadenas que contienen los números y analícelos "en su lugar", sin crear una cadena adicional. (Verhttp://ideone.com/Op6h0, a continuación se muestra la parte correspondiente.)

<code>int startIdx, endIdx = 0;
while(true)
{
    startIdx = endIdx;
    // no find_first_not_of in C#
    while (startIdx < s.Length && s[startIdx] == ' ') startIdx++;
    if (startIdx == s.Length) break;
    endIdx = s.IndexOf(' ', startIdx);
    if (endIdx == -1) endIdx = s.Length;
    // how to extract a double here?
}
</code>

Hay una sobrecarga destring.IndexOf, buscando solo dentro de una subcadena dada, pero no pude encontrar un método para analizar un doble de la subcadena, sin extraer realmente esa subcadena primero.

¿Alguien tiene alguna idea?

Respuestas a la pregunta(2)

Su respuesta a la pregunta