startindex не может быть больше чем длина строки
System.ArgumentOutOfRangeException: startIndex cannot be larger than length of string
I have this code. I am trying to retrieve just the text «first program». Considering that i know the index say 25 and total length of string is 35.
But i get the error during runtime «System.ArgumentOutOfRangeException: startIndex cannot be larger than length of string»
5 Answers 5
The parameters for String.Substring are:
You’re trying to take 35 characters after the 26th character (startIndex is zero-based), which is out of range.
If you just want to get from the 25th character to the end of the string use text.SubString(24)
Second argument to string.Substring() is the length, not the end-offset:
The second parameter to Substring is how long you want the substring to be, not the end point of the substring. 25 + 35 is outside the range of the original string, so it throws an exception.
During this time you can use
Second argument for SubString is the number of characters in the substring.
Simpler way to do it.
you can do some operation or call a function to get start/end index values. With this approach you are less likely to get into any trouble related to indexes.
Linked
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.11.23.40817
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
ArgumentOutOfRangeException: startIndex не может быть длиннее, чем длина строки
Когда я запускаю компилятор, он выдает исключение:
ArgumentOutOfRangeException: startIndex не может быть длиннее, чем длина строки.
Я не понимаю, почему строка, которую я записываю в компилятор, состоит из 10 чисел, и я хочу, чтобы substring выбрал 9-е число, но, очевидно, я делаю что-то не так.
Пример строки: 9303140456
Полный код, возможно, делает мою ошибку очевидной:
4 ответа
Эта строка в вашем классе Person
Объявляет и инициализирует новый экземпляр Form1. Это не тот экземпляр, который вы показывали на своем мониторе. Когда вы вводите свои строки, вы вводите их в экземпляре, который отображается на мониторе, а не в текстовые поля этого скрытого экземпляра.
Конечно, это означает, что когда вы пишете
Вы берете текст скрытого текстового поля, которое пусто, и следующий код подстроки не работает с исключением индекса вне диапазона
Вам нужно изменить свой класс Person и добавить свойства, которые получают содержимое текстовых полей, необходимых для ваших вычислений.
И в вашей кнопке нажмите на форму, которую вы запускаете
Перед всем своим кодом добавьте эту строку
Установите точку останова в этой строке, запустите код и наведите указатель мыши на переменную, чтобы увидеть, что она на самом деле содержит, держу пари, что это не строка из 10 символов, которую вы ожидаете
Я очень уверен, что в вашей строке string siffraAsString = form.textBox3.Text.Substring(8, 1); нет 10 номеров.
Вам следует справиться с этим более изящно. Это будет правильно обрабатывать ваши крайние случаи.
Строка, которую вы получаете в этом TextBox, наверняка не имеет длины 9 или более символов, и если у вас нет 100% уверенности в том, что ваш ввод составляет 9 символов, вы должны обрабатывать ее изящно.
Практическое правило: не пытайтесь получить доступ к индексу массива, предварительно не проверив его длину.
. Второе практическое правило: также убедитесь, что вы получаете доступ к правильному элементу управления пользовательского интерфейса, если считаете, что что-то не так.
startIndex не может быть больше длины строки
Я пытаюсь получить количество просмотров видео YouTube, но у меня есть проблема с кодом, я не использую YouTube API!
сначала я получаю исходный код, а после пытаюсь получить счетчик просмотров, но моя проблема в том, что я получаю startIndex can not be greater than the length of the string на уровне
2 ответа
У меня есть фрагмент кода, который генерирует random символ. Проблема в том, что время от времени он возвращает ошибку: startIndex cannot be larger than length of string. Parameter name: startIndex Как мне предотвратить возникновение такого рода ошибок? Вот мой код: Friend Function gentCtrlChar().
Есть два конструктора SubString
Теперь в вашем случае вы используете оба
Проблема заключается в вашем первом вызове, где вы просто определяете значение начального индекса, которое может быть больше длины строки, т. е. источника
Похожие вопросы:
Я пытаюсь проверить, не имеет ли имя папки расширения. Потому что я хочу изменить имя папки. Но вы также можете изменить имя файла. И я получаю эту ошибку: startIndex cannot be larger than length of.
Я попытался проверить месяц работы персонала, равный ли 3 месяцам с момента начала работы до настоящего времени. И это то, что я пытаюсь использовать : int totalMonth = 3; int totalYear = 0; int mon.
У меня есть фрагмент кода, который генерирует random символ. Проблема в том, что время от времени он возвращает ошибку: startIndex cannot be larger than length of string. Parameter name: startIndex.
я работаю над текстовым редактором, и в тот раз, когда я вводил в него текст, я удалил его ошибку: StartIndex не может быть меньше нуля указывая этот код: String line = rtb.Text.Substring(start, end.
Я работаю над ASP.NET 4.0 и Visual Studio 2010.In моим веб-проектом я запускаю командный процесс, чтобы получить физический адрес Системы и справиться с результатом, назначив его строковой.
Я подписывал часть android моего общего проекта Xamarin. Я создал архив, используя кнопку архив для публикации. Ранее я загрузил это приложение с помощью того же сертификата подписи и загружал его.
Когда я запускаю компилятор он выдает исключение: ArgumentOutOfRangeException: startIndex не может быть длиннее длины строки. Я не понимаю, почему строка, которую я пишу в компилятор, состоит из 10.
Я пытаюсь создать программу, которая преобразует 5-значное двоичное число в десятичное. В нынешнем виде преобразование работает отлично, но у меня возникают проблемы с выдачей сообщения об ошибке.
Как это возможно в этом коде: «ArgumentOutOfRangeException: startIndex не может быть больше длины строки»?
у меня есть следующий метод в моем C# код:
реализация выглядит очень простой и очевидной, и имеет отличный охват модульными тестами. Никаких неожиданных результатов не произошло ни на моей машине, ни на серверах сборки, ни на других машинах, к которым у меня есть доступ, ни в большинстве производственных сред.
за исключением того, что только один удаленный клиент иногда сообщает о сбое приложения в этом методе со следующим стеком Трейс:
к сожалению, у меня нет удаленного доступа к этой рабочей среде или к ее данным, или к какой-либо дополнительной информации. По некоторым причинам в настоящее время я не могу развернуть систему ведения журнала или сбор аварийного дампа.
глядя на код, и пробуя различные комбинации аргументов, я не представляю, как это исключение может произойти.
не могли бы вы помочь мне с некоторыми идеями?
2 ответов
но иногда специфичные для культуры операции-это именно то, что тебе нужно. К сожалению, их семантика может быть сложным и нелогичным, может нарушить какой-нибудь нормально-предположил инварианты, и есть много случаев, чтобы позаботиться обо. Разработчики, отвечающие за реализацию чувствительной к культуре логики в приложении, должны быть очень квалифицированными в этой области и всегда точно понимать, что они делают. Я бы рекомендовал установить стандарты обзора и тестирования для этой области выше нормы.
после комментариев я обнаружил, что подстрока не терпит неудачу при недопустимом индексе. Реальная проблема заключается в
ЄДЕБО
ЄДЕБО / Без категории
Ошибка в методе «UniversityRequestSeasonsAdd»
Запрос на добавление
c82dd955-3bee-465c-af32-426f0b289df2
a7a10736-baa3-4bc8-b002-3fff98a8f422
1
21.06.2011
30.06.2011
Тестивий набір2
199 startIndex не может быть больше, чем длина строки.
Имя параметра: startIndex
Отмечено как решение
Извините что не указали в документации.
Извините что не указали в документации.
«;
Возвращается ошибка:
Exception in try call method UniversityRequestSeasonsAdd
Parameters:
Array ( [SessionGUID] => 8b806a41-e0ab-4579-9d53-8b36b670577f [UniversityKode] => 6bcc1ab0-1b9c-48eb-a22e-759dcc332e28 [Id_PersonRequestSeasons] => 1 [UniversityRequestSeasonsDateBegin] => 01.06.2011 [UniversityRequestSeasonsDateEnd] => 29.06.2011 [UniversityRequestSeasonsName] => КУБГ. Вступ-2011 )
подобная ситуация у меня возникала если некоректно указывал параметры метода (пропущенные параметры). У вас опять изменения в методе?
Так, одни грабли нашёл. Они мои 🙂 Владимир, возможно вам это поможет. Я опять на автомате вместо сервиса guides использовал сервис persons.
Но «вылезла» такаяч ошибка:
Error: Array ( [0] => 199 [1] => startIndex не может быть больше, чем длина строки. Имя параметра: startIndex )
Админы! Помогите!
Сергей написал:
такая же проблема. для кода
Exception in try call method UniversityRequestSeasonsAdd
Parameters:
Array ( [SessionGUID] => 8b806a41-e0ab-4579-9d53-8b36b670577f [UniversityKode] => 6bcc1ab0-1b9c-48eb-a22e-759dcc332e28 [Id_PersonRequestSeasons] => 1 [UniversityRequestSeasonsDateBegin] => 01.06.2011 [UniversityRequestSeasonsDateEnd] => 29.06.2011 [UniversityRequestSeasonsName] => КУБГ. Вступ-2011 )
подобная ситуация у меня возникала если некоректно указывал параметры метода (пропущенные параметры). У вас опять изменения в методе?
Admin написал:
Сергей написал:
такая же проблема. для кода
Exception in try call method UniversityRequestSeasonsAdd
Parameters:
Array ( [SessionGUID] => 8b806a41-e0ab-4579-9d53-8b36b670577f [UniversityKode] => 6bcc1ab0-1b9c-48eb-a22e-759dcc332e28 [Id_PersonRequestSeasons] => 1 [UniversityRequestSeasonsDateBegin] => 01.06.2011 [UniversityRequestSeasonsDateEnd] => 29.06.2011 [UniversityRequestSeasonsName] => КУБГ. Вступ-2011 )
подобная ситуация у меня возникала если некоректно указывал параметры метода (пропущенные параметры). У вас опять изменения в методе?