ModelState使用Key + ErrorMessage创建List字符串.(LINQ)

Eze*_*iva 4 c# linq ienumerable modelstate asp.net-mvc-4

我想获得这样的东西:

'myKey:errorMessage'

现在我有一个包含所有ModelState错误的列表:

List<String> modelStateErrors2 = ModelState.Keys.SelectMany(key => this.ModelState[key].Errors).Select(x => x.ErrorMessage).ToList();
Run Code Online (Sandbox Code Playgroud)

但是需要在字符串的开头添加键.

有可能的?

SLa*_*aks 11

你需要移动Select()内部,SelectMany()以便它可以关闭key:

ModelState.Keys.SelectMany(key => this.ModelState[key].Errors.Select(x => key + ": " + x.ErrorMessage));
Run Code Online (Sandbox Code Playgroud)

这将更简单,因为查询理解:

from kvp in ModelState
from e in kvp.Value.Errors
select kvp.Key + ": " + e.ErrorMessage
Run Code Online (Sandbox Code Playgroud)