如何检查长度,如果字符串不为空

本文关键字:如果 字符串 何检查 检查 | 更新日期: 2023-09-27 18:04:49

我正在测试一个PUT和两个string:

company.CurrencyCode = request.CurrencyCode ?? company.CurrencyCode;
company.CountryIso2 = request.Country ?? company.CountryIso2;

,我尝试用这样的规则:

public UpdateCompanyValidator()
{
    RuleSet(ApplyTo.Put, () =>
    {
        RuleFor(r => r.CountryIso2)
              .Length(2)
              .When(x => !x.Equals(null));
        RuleFor(r => r.CurrencyCode)
              .Length(3)
              .When(x => !x.Equals(null));
    });
}

因为我不介意在这些属性上获得null,但我想在属性不是null时测试Length

什么是最好的方式来应用规则时,一个属性是nullable,我们只是想测试如果它不是空的?

如何检查长度,如果字符串不为空

其中一种方法是:

public class ModelValidation : AbstractValidator<Model>
{
    public ModelValidation()
    {
        RuleFor(x => x.Country).Must(x => x == null || x.Length >= 2);
    }
}

我更喜欢下面的语法:

When(m => m.CountryIso2 != null,
     () => {
         RuleFor(m => m.CountryIso2)
             .Length(2);
     );

最适合我的语法:

RuleFor(t => t.DocumentName)
            .NotEmpty()
            .WithMessage("message")
            .DependentRules(() =>
                {
                    RuleFor(d2 => d2.DocumentName).MaximumLength(200)
                        .WithMessage(string.Format(stringLocalizer[""message""], 200));
                });