Cookies on

This web site uses some strictly nesessary cookies to make this web site work.

We would also like to set additional cookies to understand how you use, remember your settings and improve our services.

C# equivalent of VB’s Left function

It really bugs me that C# does not have an equivalent of VB’s Left function. I know I could be using text.Substring(0,length) but this has the rather annoying feature of throwing an exception if the string is shorter than the length parameter. In 99.999999% of cases what I actually want it to do is return as much as it can instead.

Anyway here is my equivalent:

public static string Left(string text, int length)
    if (length< 0)
        throw new ArgumentOutOfRangeException("length", length, "length must be > 0");
    else if (length == 0 || text.Length == 0)
        return "";
    else if (text.Length <= length)
        return text;
        return text.Substring(0, length);


Re: C# equivalent of VB’s Left function

This is simple, 3 lines of code:

int iMyLen = 5 //Or whatever length you want...

string sMyString;

sMyString = sMyString.Substring(0,iMyLen);

Happy Lefting!

Comment from at Wednesday, 01 August 2007 10:02PM (GMT+00)

Re: C# equivalent of VB’s Left function


You seem to have missed the wole point of the post? Substring throws an exception if the string's length is less than that passed as a parameter! So the following code throws an exception:

int iMyLen = 5; //Or whatever length you want...

string sMySourceString = &quot;0123&quot;;

string sMyString;

sMyString = sMySourceString.Substring(0,iMyLen);

Comment from Martin Brown at Friday, 03 August 2007 05:03PM (GMT+00)

Re: C# equivalent of VB’s Left function

I am going mad... maybe if so then please delete this ... and call me a crazy foo ..

but I thought left meant start from some point in the string you want to go left from (not right) why are you starting from 0 ... this is not left ... this is substring

Comment from Harry Potter at Wednesday, 25 August 2010 09:59PM (GMT+00)

Sorry, this post is no longer accepting comments.