我看了这篇文章,看看我是否可以用它作为一个起点,但我没有看到它解决了我的特定问题。 C#: N For Loops不知道如何在C#中循环遍历(n)嵌套对象的数量。
我有以下代码:
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和标准[]数组。我可以通过这个循环来获取每个Criteria对象所需的后续内容,正如你所看到的我正在做的那样。
我也在深入研究第二层次,所以SearchCriteria.Criteria [n] .Criteria [n]我可以放置一个for循环并抓取任何嵌套值。
我弄不清楚的部分是如何解释可变数量的嵌套Criteria对象?我可能有这样的:
SearchCriteria.Criteria[n].Criteria[n] ... (repeat a hundred times)... .Criteria[n]
因此,它可以具有嵌套的对象的潜在的无限数量,和同级对象(标准[0],标准[1] ...标准的无限数量[100000]是我的意思是)。
有没有一种方法可以循环所有这些?我听说一个递归循环可能是答案,我隐约明白这个概念,但我不知道的是我怎样才能得到孩子和兄弟姐妹的数量?
请将'Count()'的值存储到一个变量中......当您没有修改内容的危险时,您不必经常调用它。 – TheZ 2012-08-10 20:33:48
更改了代码,这只是一个粗略的,试图让它工作示例,因此我只是每次调用它。 – ledgeJumper 2012-08-10 20:35:55