Как получить только исключения из ViewData.ModelState с Linq? - PullRequest
2 голосов
/ 20 марта 2009

Я написал следующий код для извлечения исключений вместе со строковым ключом, ссылающимся на свойство из свойства ViewData.Modelstate в ASP.Net MVC. Я думаю, что это можно было сделать с помощью выражения Linq, но это совершенно сбило меня с толку.

       var exceptions = new Dictionary<string, Exception>();
       foreach (KeyValuePair<string, ModelState> propertyErrorsPair in ViewData.ModelState)
       {
           foreach (var error in propertyErrorsPair.Value.Errors)
           {
               if (error.Exception != null)
               {
                   exceptions.Add(propertyErrorsPair.Key, error.Exception);
               }
           }
       }

Так есть ли способ Linq сделать это? Я предполагаю, что это может иметь какое-то отношение к SelectMany, но, как я уже сказал, я не мог понять, как этого добиться.

Спасибо

1 Ответ

5 голосов
/ 20 марта 2009

Это эквивалентное выражение LINQ:

var result = ViewData.ModelState.SelectMany(x => x.Value.Errors
   .Where(error => error.Exception != null)
   .Select(error => new KeyValuePair<string, Exception>(x.Key, error.Exception)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...