Как я могу выразить этот вложенный цикл в 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

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