2013-08-22 1 views
4

Я хочу, чтобы получить что-то вроде этого:ModelState создает строку списка с ключом + ErrorMessage. (LINQ)

'MYKEY: ErrorMessage'

Теперь я список всех ошибок ModelState:

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

Но нужно добавить ключ в начале строки.

Возможно?

ответ

9

Вы должны переместить Select()SelectMany() внутри так что он может закрыть над key:

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

Это было бы проще в понимании запроса:

from kvp in ModelState 
from e in kvp.Value.Errors 
select kvp.Key + ": " + e.ErrorMessage 
+0

спасибо! это то, что мне нужно –

+0

@EzequielLeiva: Добро пожаловать! BTW, 'kvp' означает' KeyValuePair'. – SLaks

+0

Запрос LINQ хорош! – JMS10

Смежные вопросы