我查看了这篇文章,看看是否可以以此为起点,但我认为它并没有解决我的特定问题。C#:N 个 For 循环
我有以下代码:
int criteriaCount = rule.SearchCriteria.Criteria.Count();
string criteria = "";
for (int i = 0; i < criteriaCount; i++)
{
if (rule.SearchCriteria.Criteria[i].Criteria.Count() > 0)
{
criteria += string.Format("({0}" + System.Environment.NewLine, rule.SearchCriteria.Criteria[i].Display);
criteria += string.Format("{0})" + System.Environment.NewLine, rule.SearchCriteria.Criteria[i].Criteria[i].Display);
}
else
{
criteria += string.Format("[{0}]" + System.Environment.NewLine, rule.SearchCriteria.Criteria[i].Display);
}
}
稍微解释一下,您有 SearchCriteria 和 Array of Criteria[]。我可以遍历它并从每个 Criteria 对象中获取我需要的关注,正如你所看到的那样。
我也在深入研究第二级,所以 SearchCriteria.Criteria[n].Criteria[n] 我可以放置一个 for 循环并在那里抓取任何嵌套值。
我无法弄清楚的部分是如何解释可变数量的嵌套 Criteria 对象?我可能有这个:
SearchCriteria.Criteria[n].Criteria[n] ... (repeat a hundred times)... .Criteria[n]
所以它可能有无限数量的嵌套对象和无限数量的兄弟对象(Criteria[0], Criteria[1] ... Criteria[100000] 就是我的意思)。
有没有办法让我遍历所有这些?我听说递归循环可能是答案,我隐约理解这个概念,但我不知道如何获得孩子和兄弟姐妹的数量?