【发布时间】:2017-02-08 20:56:54
【问题描述】:
我目前通过使用 3 个嵌套的 forloops 来获取值。我已经将 JSON 反序列化为 someCollection 类。我在网上看到了类似的例子,但我希望有人能解释我如何让它发挥作用。 谢谢
private List<Guid> GetIds(SomeCollection someList)
{
var list = new List<Guid>();
for (int i = 0; i < someList.Categories.Count; i++)
{
for (int j = 0; j < someList.Categories[i].Categories.Count; j++)
{
for (int k = 0; k < someList.Categories[i].Categories[j].Categories.Count; k++)
{
list.Add(Guid.Parse((someList.Categories[i].Categories[j].Categories[k].Key)));
}
list.Add(Guid.Parse((someList.Categories[i].Categories[j].Key)));
}
list.Add(Guid.Parse((someList.Categories[i].Key)));
}
return list;
【问题讨论】:
-
这是一个应该使用递归调用的典型案例。
-
谢谢@Graffito。我遇到的麻烦是如何以动态调用子类别的方式实现递归。即此代码仅下降三个级别。我不确定如何实现一个条件来检查是否有更多可用的子类别
标签: c# .net for-loop recursion