Index and length must refer to a location within the string error in substring

20,735

You've misunderstood the parameters to Substring - they aren't start and end (as they are in Java), they're start and length.

So you want:

No = line.Substring(Start, End - Start);

From the docs:

Parameters startIndex
Type: System.Int32
The zero-based starting character position of a substring in this instance.

length
Type: System.Int32
The number of characters in the substring.

Return Value
Type: System.String
A string that is equivalent to the substring of length length that begins at startIndex in this instance, or Empty if startIndex is equal to the length of this instance and length is zero.

Always, always read the documentation - particularly if you're getting an exception that you don't understand.

Share:
20,735
shubham Hegdey
Author by

shubham Hegdey

Updated on October 10, 2020

Comments

  • shubham Hegdey
    shubham Hegdey over 3 years

    I have a string like this: 2899 8761 014 00:00:00 06/03/13 09:35 G918884770707. I have to take the substring G918884770707 from this given string. I know the start of the substring so I'm taking the end of the substring as the length of the whole string like this:

     No = line.Substring(Start,End);
    

    Here the value of Start is 39 and the length of the main string is 52 so this is the value for End.

    This causes the error:

    Index and length must refer to a location within the string error in substring

    How do I resolve this?