“Index et la longueur doit se référer à un emplacement dans la chaîne” erreur
Je suis en train d'extraire les 200 premiers mots d'une chaîne de caractères et parfois j'ai l'erreur suivante:
"Index and length must refer to a location within the string. Parameter name: length"
Le code est:
int i = GetIndex(fullarticle, 200);
string result = fullarticle.Substring(0, i);
Comment puis-je résoudre ce problème?
- Vous dites que vous voulez de 200 mots. Qu'advient-il si votre chaîne est de moins de 200 mots? Pourrais-tu montrer le code de GetIndex?
Vous devez vous connecter pour publier un commentaire.
Il semble sûr de supposer que l'erreur provient de chaîne de caractères.Sous-chaîne. Étant donné que vous obtenez ce message d'erreur lorsque
startIndex + length > given.Length
oustartIndex < 0
oulength < 0
,GetIndex
est de retourner une valeur supérieure àfullarticle.Length
ou un nombre négatif. L'erreur existe dansGetIndex
donc, si vous souhaitez effectuer sur avec le code que vous avez, vous devriez poster le code deGetIndex
pour obtenir la meilleure réponse.Si vous êtes pour quelque chose de différent, vous pouvez essayer ceci:
Il sort de la plage que votre chaîne est inférieure à 200 caractères
Pour y remédier vous pouvez utiliser
Math.Min
il va choisir la valeur la plus faible entre la longueur de la chaîne et 200.Espère que cela vous fait gagner du temps.
Ceci est probablement dû au fait que la chaîne a moins de 200 mots et provenant vraisemblablement de
GetIndex
renvoyer une valeur pouri
plus grand que le nombre de caractères dansfullarticle
. Comme un exemple de l'erreurjette
Si votre intention est d'obtenir jusqu'à 200 premiers mots dans une chaîne, vous devez vérifier
Semble que j'ai est plus grand que l'ensemble de la fullarticle longueur. Vérifiez votre GetIndex fonction.