Ну, я знаю, что ответ уже принят, и я могу быть распят за то, что выкинул здесь регулярное выражение, но я обычно так делаю:
//may return more than 25 characters depending on where in the string 25 characters is at
public string ShortDescription(string val)
{
return Regex.Replace(val, @"(.{25})[^\s]*.*","$1...");
}
// stricter version that only returns 25 characters, plus 3 for ...
public string ShortDescriptionStrict(string val)
{
return Regex.Replace(val, @"(.{25}).*","$1...");
}
У него есть приятное побочное преимущество - не разрезать слово пополам, поскольку оно всегда останавливается после первого пробела после 25 символов. (Конечно, если вам это нужно для усечения текста, поступающего в базу данных, это может быть проблемой.
Недостаток, я уверен, что это не самое быстрое решение.
РЕДАКТИРОВАТЬ: заменено & hellip; с "...", так как не уверен, что это решение для сети!