Крошечный способ получить первые 25 символов - PullRequest
10 голосов
/ 27 февраля 2009

Может ли кто-нибудь придумать лучший способ сделать следующее:

public string ShortDescription
{
    get { return this.Description.Length <= 25 ? this.Description : this.Description.Substring(0, 25) + "..."; }
}

Я бы хотел просто сделать string.Substring (0, 25), но он выдает исключение, если строка меньше указанной длины.

Ответы [ 12 ]

0 голосов
/ 27 февраля 2009

Я не могу думать ни о чем, но ваш подход может быть не лучшим. Вы добавляете логику представления в свой объект данных? Если это так, то я предлагаю вам применить эту логику в другом месте, например, статический класс StringDisplayUtils с GetShortStringMethod (int maxCharsToDisplay, string stringToShorten).

Тем не менее, такой подход может быть не очень хорошим. А как насчет разных шрифтов и наборов символов? Вы должны начать измерять фактическую длину строки в пикселях. Проверьте свойство AutoEllipsis в классе Label winform (вам, вероятно, потребуется установить AutoSize в false, если вы используете это). Свойство AutoEllipsis, если оно истинно, сократит строку и добавит для вас символы '...'.

0 голосов
/ 27 февраля 2009

Мне кажется, что я очень требователен, я бы заменил "..." ссылкой на сущность

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...