如何通過在這種情況下使用lambda或linq來避免使用嵌套的foreach語句?現在已經很晚了,我似乎無法弄清楚如何訪問ErrorMessage屬性而不必恢復到嵌套的foreach語句。如果完全使用Lambda或Linq重寫代碼,那麼等效方法是什麼?如何通過在這種情況下使用lambda或linq來避免使用嵌套的foreach語句?
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;
}
它編譯 - 謝謝:) – CarneyCode