I needed to trim some strings that if over a certain length would trim nicely and add "..." to the end. I particularly like to use
extension methods in .NET where possible so I created this little
TrimTo extension. There are some optionals that can be sent through including the characters whack on the end and whether to swap out the HTML
br tag (I needed this - you may not ;) )
C#
public static class Extensions
{
/// <summary>
/// <summary>
/// Trim a string to a specific length
/// </summary>
/// <param name="size">The finishing size of the string</param>
public static string TrimTo(this string s, int size)
{
return TrimTo(s, size, "...");
}
/// <summary>
/// Trim a string to a specific length
/// </summary>
/// <param name="size">The finishing size of the string</param>
/// <param name="chars">The characters to put at the end of the string. Defaults to "..."</param>
public static string TrimTo(this string s, int size, string chars)
{
return TrimTo(s, size, chars, false);
}
/// <summary>
/// Trim a string to a specific length
/// </summary>
/// <param name="size">The finishing size of the string</param>
/// <param name="chars">The characters to put at the end of the string. Defaults to "..."</param>
/// <param name="doBRs">Where to replace new lines with <br />. Defaults to false</param>
public static string TrimTo(this string s, int size, string chars, bool doBRs)
{
if (s.Length > size)
s = String.Format("{0}{1}", s.Substring(0, size), chars);
if (doBRs)
s = s.Replace("\n", "<br />");
return s;
}
}
VB.NET
Public Shared Class Extensions
''' <summary>
''' <summary>
''' Trim a string to a specific length
''' </summary>
''' <param name="size">The finishing size of the string</param>
Public Shared Function TrimTo(this string s, int size) As String
Return TrimTo(s, size, "...")
End Function
''' <summary>
''' Trim a string to a specific length
''' </summary>
''' <param name="size">The finishing size of the string</param>
''' <param name="chars">The characters to put at the end of the string. Defaults to "..."</param>
Public Shared Function TrimTo(this string s, int size, string chars) As String
Return TrimTo(s, size, chars, false)
End Function
''' <summary>
''' Trim a string to a specific length
''' </summary>
''' <param name="size">The finishing size of the string</param>
''' <param name="chars">The characters to put at the end of the string. Defaults to "..."</param>
''' <param name="doBRs">Where to replace new lines with <br />. Defaults to false</param>
Public Shared Function TrimTo(this string s, int size, string chars, bool doBRs) As String
If s.Length > size Then s = String.Format("{0}{1}", s.Substring(0, size), chars)
If doBRs Then s = s.Replace("\n", "<br />")
Return s
End Function
End Class