C'est une façon étrange de le faire, mais j'ai testé avec une entrée d'échantillon de mon cru et ça marche bien dans les circonstances prévues.
Le problème se produit lorsque startString
est introuvable, car le tableau résultant du premier string.Split
contiendra un seul élément (la chaîne d'entrée d'origine). Lorsque vous essayez de diviser le 2ème élément sur endChar
, il n'y a pas de 2ème élément à trouver, et c'est votre exception.
Je suis sûr qu'il ya des façons plus élégantes de le faire, mais cela fera le travail, le retour null
si l'une ou startString
endChar
ne peut pas être trouvé:
public static string ExtractString(string content, string startString, char endChar)
{
int i, j;
i = content.IndexOf(startString);
if (i == -1)
return null;
else
i += startString.Length; // Start at char after startString
j = content.IndexOf(endChar);
if (j == -1)
return null;
return content.Substring(i, j - i);
}
l'exception est simple. vous accédez à un index qui n'est pas disponible ou n'existe pas ou plus la longueur de votre tableau. –
Au lieu de lever les mains dans la consternation, découvrez où est l'erreur. Briser le code en plusieurs lignes qui font une chose chacune au lieu d'une seule ligne qui fait tout. Il sera alors facile de voir où le problème est basé sur quelle ligne il casse. – jmcilhinney