gpt4 book ai didi

c# - 递归调用返回一个列表,返回类型导致我出现问题

转载 作者:可可西里 更新时间:2023-11-01 03:11:52 25 4
gpt4 key购买 nike

我有一个返回类别并检查其子类别的递归方法。

这是我的代码:

public List<Category> GetAllChildCats(int categoryid) 
{
List<Category> list = new List<Category>();

Category c = Get(categoryid);

foreach(Category cat in c.ChildCategories)
{
list.Add(GetAllChildCats(cat.CategoryID));
}

}

失败是因为调用了list.Add()期望一个 Category对象,但是 GetAllChildCats()返回 List<Category>

我应该如何解决这个问题?

最佳答案

目前您还没有显示任何实际上将单个类别添加到列表中的内容...我假设当您递归时,您希望将 Get(categoryId) 的结果添加为嗯·

Preet 的解决方案肯定会奏效,但这里有一个避免创建所有额外列表的替代方案:

public List<Category> GetAllChildCats(int categoryId)
{
List<Category> ret = new List<Category>();
GetAllChildCats(categoryId, ret);
return ret;
}

private void GetAllChildCats(int categoryId, List<Category> list)
{
Category c = Get(categoryid);
list.Add(c);

foreach(Category cat in c.ChildCategories)
{
GetAllChildCats(cat.CategoryID, list);
}
}

这会创建一个列表,并在其中添加项目。

但有一点 - 如果您已经有了子 Category 对象,您真的需要再次调用 Get 吗?在您获取整个类别之前,每个子项是否仅包含其 ID?

关于c# - 递归调用返回一个列表,返回类型导致我出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1504110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com