Как ограничить длину строки до 150 символов?

Я попробовал следующее:

var a = description.Substring(0, 150);

Однако это дает проблему, если длина описания меньше 150 символов. Так что есть ли другой способ ограничить длину до 150, которая не даст ошибку, когда длина строки, например, 20.

Ответ 1

var a = description == null 
        ? string.Empty 
        : description.Substring(0, Math.Min(150, description.Length));

Ответ 2

var a = description.Substring(0, Math.Min(150, description.Length));

Просто возьмите подстроку из 150 символов или всю строку, в зависимости от того, что меньше.

Ответ 3

Попробуйте использовать следующий метод расширения

public static string LimitTo(this string data, int length) {
  return (data == null || data.Length < length) 
    ? data 
    : data.Substring(0, length);
}

Ответ 4

Атрибут длины строки работает для С#:

[StringLength(150)]
public string MyProperty { get; set; }

Ответ 5

Я думаю, вы действительно этого хотите.

public static string LimitTo(this string data, int length) {
  return (data == null || data.Length <= length)   // Less than or equal to
    ? data 
    : data.Substring(0, length);
}

Ответ 6

Строки неизменяемы, даже если вы могли бы создать экземпляр, который работал так, как вы хотели, как только вы назначили другое значение вашей переменной, это будет другой экземпляр типа string.

Если вы хотите иметь свойство string, которое имеет максимум 150 символов, тогда напишите свойство, в котором вы проверяете значение в установщике и генерируете исключение, если оно содержит более 150 символов.

Если вам нужен параметр string для метода, который имеет максимум 150 символов, то в верхней части метода проверьте, превышает ли оно более 150 символов, если оно есть, генерирует исключение.

Ответ 7

Хорошо, если ваша среда поддерживает вас, используя метод ниже. (Предлагается @christian-cody.)

[StringLength(150)]
public string MyProperty { get; set; }

Вы должны включить следующее пространство имён.

using System.ComponentModel.DataAnnotations;

Ответ 8

var a = description.Substring(0, description.Length > 150 ? 150 : description.Length);