To cut a string to full words you can use the following snippet.
Sample C#
public string Chop(string input, int maxLength, string chopChars="...", char spaceChar = ' ') { var strings = input.Split(new[] { spaceChar }, StringSplitOptions.RemoveEmptyEntries); if (strings[0].Length > maxLength) { return strings[0]; } var builder = new StringBuilder(); foreach (var s in strings) { if ((builder + s).Length > maxLength) { return string.Format("{0}{1}", builder.ToString().TrimEnd(spaceChar), chopChars); } builder.Append(s + spaceChar); } return string.Format("{0}{1}", builder.ToString().TrimEnd(spaceChar), chopChars); }
Sample VB.NET
Public Function Chop(input As String, maxLength As Integer, Optional chopChars As String = "...", Optional spaceChar As Char = " "C) As String Dim strings = input.Split(New () {spaceChar}, StringSplitOptions.RemoveEmptyEntries) If strings(0).Length > maxLength Then Return strings(0) End If Dim builder = New StringBuilder() For Each s As var In strings If (builder + s).Length > maxLength Then Return String.Format("{0}{1}", builder.ToString().TrimEnd(spaceChar), chopChars) End If builder.Append(s + spaceChar) Next Return String.Format("{0}{1}", builder.ToString().TrimEnd(spaceChar), chopChars) End Function
RT @CodeSnippetsNET: How to cut a string to full words http://t.co/SsmhzVKd8C #csharp #vb #dotnet #programming #code