Как я могу выразить этот вложенный цикл в LINQ?C#

Место общения программистов C#
Ответить
Anonymous
 Как я могу выразить этот вложенный цикл в LINQ?

Сообщение Anonymous »

Справочная информация:
  • У меня есть приложение ASP.NET Core. Я пытаюсь записать в журнал ошибки проверки на стороне сервера.
  • Если проверка модели ASP.NET Core обнаруживает какую-либо ошибку в любом поле веб-формы, то ModelState.IsValid является ложным.
  • Каждое поле веб-формы указано в ModelState.Values.
  • Если «Значение» содержит одну или несколько ошибок, то значение .Errors.Count > 0
  • Я хочу регистрировать а) имя поля веб-формы («ключ» значения) и б) каждое сообщение об ошибке для этого поля.
  • Я хотел бы включить всю эту информацию в одну строку (т. е. в одну «строку» C#).
Текущий код:

Код: Выделить всё

// LOG:
//   2022-10-24 09:37:29.0909|Error|ServiceMenu.Q255: The value '' is invalid.
//   2022-10-24 09:37:35.4096|Error|ServiceMenu.Q265: The value '' is invalid.
if (!ModelState.IsValid)
{
foreach (var k in ModelState.Keys)
{
var v = ModelState[k];
if (v.Errors.Count > 0)
{
string s = k + ": ";
for (int i=0; i < v.Errors.Count - 1; i++)
s += v.Errors[i].ErrorMessage + ", ";
s += v.Errors[v.Errors.Count - 1].ErrorMessage;
_logger.LogError(s);
}
}
return Page();
}
Пример вывода (два обязательных поля, Q255 и 265, были пустыми):

Код: Выделить всё

2022-10-24 09:37:29.0909|Error|ServiceMenu.Q255: The value '' is invalid.
2022-10-24 09:37:35.4096|Error|ServiceMenu.Q265: The value '' is invalid.
Можно ли упростить этот вложенный цикл с помощью LINQ?

Подробнее здесь: https://stackoverflow.com/questions/741 ... op-in-linq
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»