Steve Guidi Steve Guidi - 1 month ago 6
C# Question

How do I truncate a .NET string?

I apologize for such a question that likely has a trivial solution, but strangely, I could not find a concise API for this problem.

Essentially, I would like to truncate a string such that its length is not longer than a given value. I am writing to a database table and want to ensure that the values I write meet the constraint of the column's datatype.

For instance, it would be nice if I could write the following:

string NormalizeLength(string value, int maxLength)
{
return value.Substring(0, maxLength);
}


Unfortunately, this raises an exception because
maxLength
generally exceeds the boundaries of the string
value
. Of course, I could write a function like the following, but I was hoping that something like this already exists.

string NormalizeLength(string value, int maxLength)
{
return value.Length <= maxLength ? value : value.Substring(0, maxLength);
}


Where is the elusive API that performs this task? Is there one?

Answer

There isn't a Truncate() method on string, unfortunately. You have to write this kind of logic yourself. What you can do, however, is wrap this in an extension method so you don't have to duplicate it everywhere:

public static class StringExt
{
    public static string Truncate(this string value, int maxLength)
    {
        if (string.IsNullOrEmpty(value)) return value;
        return value.Length <= maxLength ? value : value.Substring(0, maxLength); 
    }
}

Now we can write:

var someString = "...";
someString = someString.Truncate(2);