Я попробовал следующее:
var a = description.Substring(0, 150);
Однако это дает проблему, если длина описания меньше 150 символов. Так что есть ли другой способ ограничить длину до 150, которая не даст ошибку, когда длина строки, например, 20.
Я попробовал следующее:
var a = description.Substring(0, 150);
Однако это дает проблему, если длина описания меньше 150 символов. Так что есть ли другой способ ограничить длину до 150, которая не даст ошибку, когда длина строки, например, 20.
var a = description == null
? string.Empty
: description.Substring(0, Math.Min(150, description.Length));
var a = description.Substring(0, Math.Min(150, description.Length));
Просто возьмите подстроку из 150 символов или всю строку, в зависимости от того, что меньше.
Попробуйте использовать следующий метод расширения
public static string LimitTo(this string data, int length) {
return (data == null || data.Length < length)
? data
: data.Substring(0, length);
}
Атрибут длины строки работает для С#:
[StringLength(150)]
public string MyProperty { get; set; }
Я думаю, вы действительно этого хотите.
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);
}
Строки неизменяемы, даже если вы могли бы создать экземпляр, который работал так, как вы хотели, как только вы назначили другое значение вашей переменной, это будет другой экземпляр типа string
.
Если вы хотите иметь свойство string
, которое имеет максимум 150 символов, тогда напишите свойство, в котором вы проверяете значение в установщике и генерируете исключение, если оно содержит более 150 символов.
Если вам нужен параметр string
для метода, который имеет максимум 150 символов, то в верхней части метода проверьте, превышает ли оно более 150 символов, если оно есть, генерирует исключение.
Хорошо, если ваша среда поддерживает вас, используя метод ниже. (Предлагается @christian-cody.)
[StringLength(150)]
public string MyProperty { get; set; }
Вы должны включить следующее пространство имён.
using System.ComponentModel.DataAnnotations;
var a = description.Substring(0, description.Length > 150 ? 150 : description.Length);