I'd like to write an extension method to the String
class so that if the input string to is longer than the provided length N
, only the first N
characters are to be displayed.
Here's how it looks like:
public static string TruncateLongString(this string str, int maxLength)
{
if (str.Length <= maxLength)
return str;
else
//return the first maxLength characters
}
What String.*()
method can I use to get only the first N
characters of str
?
You can use LINQ
str.Take(n)
orstr.SubString(0, n)
, where the latter will throw anArgumentOutOfRangeException
exception forn > str.Length
.Mind that the LINQ version returns a
IEnumerable<char>
, so you'd have to convert theIEnumerable<char>
tostring
:new string(s.Take(n).ToArray())
.string.Substring(0,n); // 0 - start index and n - number of characters
This solution has a tiny bonus in that if n is greater than s.Length, it still does the right thing.