有沒有辦法擺脫.FirstOrDefault()
以下設置。我喜歡使用yield單詞,但是我想將IsRequired方法濃縮到我不必使用.FirstOrDefault()
的地步。替代方式編寫收益率
PlayerValidator
protected override IEnumerable<ValidationResult> Validate(PlayerModel entity, IValidationProvider validationProvider)
{
yield return ValidationResultHelper.IsRequired(entity.Profile.FirstName, "First Name").FirstOrDefault();
if (string.IsNullOrWhiteSpace(entity.Profile.LastName))
yield return new Required("Last Name");
}
ValidatorHelper
public IEnumerable<ValidationResult> IsRequired(string text, string name)
{
if (string.IsNullOrWhiteSpace(text))
yield return new Required(name);
}
如果'FirstName'有效,您的代碼是否意味着返回'null'? – 2012-01-11 01:43:56
沒有,就像LastName返回一樣。 – 2012-01-11 01:45:57
嗯,我不是'yield return' virtuoso,但是FirstOrDefault'的OrDefault'部分如果FirstName不是'null'或空白,會給你一個'null'值嗎? – 2012-01-11 01:54:33