1

私は次のコードを持っています:

    protected IEnumerable<string> GetErrorsFromModelState() {
        var errors = ModelState
         .SelectMany(x => x.Value.Errors.Select(error => error.ErrorMessage)
         .Union(x.Value.Errors.Select(error => error.Exception.Message)));
        return errors;
    }

動作しますが、ErrorMessageのエントリが ""の場合、これを文字列のリストに追加します。「」でない場合にのみErrorMessagesを選択するようにする方法はありますか?

4

1 に答える 1

0

空の文字列をチェックしてみてください。nullまたは空の場合は、選択と射影を破棄してください。

 protected IEnumerable<string> GetErrorsFromModelState() {
        var errors = ModelState
         .SelectMany(x => x.Value.Errors.Where(error=>!String.IsNullOrEmpty(error.ErrorMessage)).Select(error => error.ErrorMessage)
         .Union(x.Value.Errors.Where(error=>!String.IsNullOrEmpty(error.ErrorMessage)).Select(error => error.Exception.Message)));
        return errors;
    }
于 2012-08-26T09:07:37.947 に答える