这是之前发布的问题的扩展。我试图递归地构建一个字符串。我需要改变下面的函数来做到这一点 - 函数的每个递归生成所需的字符串,但我需要将它们连接在一起并返回整个字符串。 'related'作为一个空字符串传递给函数,我认为我使用string.Format的方式会将每个递归添加到'related'字符串中?显然不是。帮助递归并返回值
不知道如何...
private string getRelatedNews(Taxonomy taxData, string related, string contentTitle)
{
foreach (TaxonomyItemData item in taxData.TaxonomyItems)
{
if (taxData.TaxonomyName.Equals(contentTitle) && taxData.TaxonomyItemCount != 0)
{
related = string.Format("{0}<li><a href='{1}'\">{2}</a></li>", related, item.Link, item.Name);
}
}
// Show all its sub categories
foreach (TaxonomyData cat in taxData.Taxonomy)
{
getRelatedNews(cat, related, contentTitle);
}
return(related);
}
与此相关的一个问题是,您将创建大量被丢弃的字符串(增加GC压力)。看看使用StringBuilder只建立一个字符串一次。 – Talljoe 2011-04-08 04:19:40