В основном у меня есть метод, которому передается список пользовательских объектов. Я использую C#. Каждое из них содержит имя и другой список других настраиваемых объектов, я буду называть эти субобъекты. Каждый из них имеет имя и список строк. Мне нужно перебирать все строки, но отслеживать имена родительского объекта и подвергать ошибкам протоколирование. Есть ли более чистый, лучший способ сделать это, чем вложенные foreachs?Как упростить несколько вложенных foreachs в C#
foreach (var obj in listOfObjects)
{
foreach (var subObj in obj.subObjects)
{
foreach (var aString in subObj.strings)
{
if (some condition applies)
{
//log error that includes obj, subObj, and subSubObj names, and aString.
}
}
}
}
Какое условие вы хотите использовать в блоке 'if'? – ekad
Вы можете использовать LINQ для этого, но я не уверен, что это будет намного яснее. – MarcinJuraszek
Сначала замените 'subobj.strings'' subObj.strings) ', поэтому он компилируется. :) Я не вижу никаких проблем с этой структурой. Он делает то, что должен. Единственная проблема может заключаться в том, что внутри этого 'if' вам нужно выйти из внешнего' foreach', для чего потребуется флаг или красивая 'goto'. ;) – Andrew