C# 在这种情况下,如何通过使用lambda或linq避免使用嵌套的foreach语句?
在这种情况下,如何通过使用lambda或linq避免使用嵌套的foreach语句?已经很晚了,我似乎不知道如何访问ErrorMessage属性,而不必恢复到嵌套的foreach语句。如果完全使用Lambda或Linq重写代码,那么等效的方法是什么C# 在这种情况下,如何通过使用lambda或linq避免使用嵌套的foreach语句?,c#,asp.net-mvc-3,linq,C#,Asp.net Mvc 3,Linq,在这种情况下,如何通过使用lambda或linq避免使用嵌套的foreach语句?已经很晚了,我似乎不知道如何访问ErrorMessage属性,而不必恢复到嵌套的foreach语句。如果完全使用Lambda或Linq重写代码,那么等效的方法是什么 public static List<String> ExtractErrors(this ModelStateDictionary modelStateDictionary) { List<S
public static List<String> ExtractErrors(this ModelStateDictionary modelStateDictionary)
{
List<String> errors = new List<String>();
var modelErrorCollection = (from modelState in modelStateDictionary.Values
where modelState.Errors != null && modelState.Errors.Count > 0
select modelState.Errors).ToList();
foreach (var item in modelErrorCollection)
{
foreach (ModelError modelError in item)
{
errors.Add(modelError.ErrorMessage);
}
}
return errors;
}
公共静态列表提取错误(此ModelStateDictionary ModelStateDictionary)
{
列表错误=新列表();
var modelErrorCollection=(来自modelStateDictionary.Values中的modelState
其中modelState.Errors!=null&&modelState.Errors.Count>0
选择modelState.Errors).ToList();
foreach(modelErrorCollection中的变量项)
{
foreach(项目中的ModelError ModelError)
{
添加(modelError.ErrorMessage);
}
}
返回错误;
}
不是错误。添加(modelErrorCollection.SelectMany(x=>x))?不是错误。添加(modelErrorCollection.SelectMany(x=>x))?你会想为此使用SelectMany
public static List<String> ExtractErrors(this ModelStateDictionary modelStateDictionary)
{
var modelErrorCollection = (from modelState in modelStateDictionary.Values
where modelState.Errors != null && modelState.Errors.Count > 0
select modelState.Errors)
.SelectMany(item=>item)
.Select(modelError=>modelError.ErrorMessage)
.ToList();
return modelErrorCollection;
}
公共静态列表提取错误(此ModelStateDictionary ModelStateDictionary)
{
var modelErrorCollection=(来自modelStateDictionary.Values中的modelState
其中modelState.Errors!=null&&modelState.Errors.Count>0
选择modelState.Errors)
.SelectMany(项=>item)
.Select(modelError=>modelError.ErrorMessage)
.ToList();
返回模式错误收集;
}
您需要为此使用选择many
public static List<String> ExtractErrors(this ModelStateDictionary modelStateDictionary)
{
var modelErrorCollection = (from modelState in modelStateDictionary.Values
where modelState.Errors != null && modelState.Errors.Count > 0
select modelState.Errors)
.SelectMany(item=>item)
.Select(modelError=>modelError.ErrorMessage)
.ToList();
return modelErrorCollection;
}
公共静态列表提取错误(此ModelStateDictionary ModelStateDictionary)
{
var modelErrorCollection=(来自modelStateDictionary.Values中的modelState
其中modelState.Errors!=null&&modelState.Errors.Count>0
选择modelState.Errors)
.SelectMany(项=>item)
.Select(modelError=>modelError.ErrorMessage)
.ToList();
返回模式错误收集;
}