如何限制我的选择,以便它不选择空字符串值?

时间:2012-08-26 09:04:07

标签: c#

我有以下代码:

    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,如果它们不是“”?

1 个答案:

答案 0 :(得分:0)

尝试检查空字符串,如果为空或空,则丢弃选择和投影。

 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;
    }