この記事を見て、それを出発点として使用できるかどうかを確認しましたが、特定の問題に対処しているとは思いません. 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 オブジェクトから必要なフォローを取得できます。
私は第 2 レベルも深く見ているので、SearchCriteria.Criteria[n].Criteria[n] と for ループを配置して、そこにネストされた値を取得することもできます。
私が理解できない部分は、ネストされた Criteria オブジェクトの可変数をどのように説明できるかということです。私は潜在的にこれを持っている可能性があります:
SearchCriteria.Criteria[n].Criteria[n] ... (repeat a hundred times)... .Criteria[n]
したがって、無限の数のネストされたオブジェクトと、無限の数の兄弟オブジェクトを持つ可能性があります (Criteria[0]、Criteria[1] ... Criteria[100000] が私の意味です)。
これをすべてループできる方法はありますか?再帰ループが答えかもしれないと聞いたことがありますが、その概念は漠然と理解していますが、子供と兄弟の数を取得するにはどうすればよいですか?