You need to move the Select()
inside the SelectMany()
so it can close over the key
:
ModelState.Keys.SelectMany(key => this.ModelState[key].Errors.Select(x => key + ": " + x.ErrorMessage));
This would be simpler as a query comprehension:
from kvp in ModelState
from e in kvp.Value.Errors
select kvp.Key + ": " + e.ErrorMessage