Questa funzione permette di troncare una stringa, lasciando però intatta la parola che coincide con il punto di taglio.
Mi spiego meglio. Quante volte, durante la stampa a video di record, vi trovate a gestire stringhe di caratteri molte lunghe (come per esempio la descrizione di un prodotto ...), che decidete quindi di troncare per dare un aspetto migliore alle vostre pagine ?
Accade spessissimo, e la maggiorparte delle volte viene applicato semplicemente il metodo Substring() della classe String, per troncare il testo all'altezza desiderata, e vengono aggiunti i tre puntini alla fine del testo troncato. Attraverso questa tecnica però, può accadere benissimo che la parola finale risulti spezzata.
Con questo metodo, potete invece troncare la frase all'altezza desiderata, e mantenere le "ultime" parole intatte; potendo anche decidere se far finire la parola, o se troncare anch'essa per intero.

C#

public static string TruncString(string input, int maxLength, bool goBack)

{
int stop = 0;
if(!goBack)
stop = input.IndexOfAny(new char[] {';',',','.',' ',':'}, maxLength);
else
stop = input.LastIndexOfAny(new char[] {';',',','.',' ',':'}, maxLength);
return input.Substring(0, stop) + " ...";
}

VB.NET
Public Shared Function TruncString(ByVal input As String,

ByVal maxLength As Integer,
ByVal goBack As Boolean)
Dim stop As Integer
If Not goBack Then
stop = input.IndexOfAny(New Char {";",",","."," ",":"}, maxLength)
Else
stop = input.LastIndexOfAny(New Char {";",",","."," ",":"}, maxLength)
End If
Return input.Substring(0, stop) & "..."
End Function

Passando quindi false come terzo parametro della funzione, decidiamo di troncare la frase subito dopo finita l'ultima parola.