【发布时间】:2015-12-10 19:46:39
【问题描述】:
编辑:我正在完全重做我的问题,因为我已经找到了最简单的提问方式。感谢到目前为止让我思考根本问题的评论者。
public List<string> GetAllPossibleCombos(List<List<string>> strings)
{
List<string> PossibleCombos = new List<string>();
//????
{
string combo = string.Empty;
// ????
{
combo += ????
}
PossibleCombos.Add(combo);
}
return PossibleCombos;
}
我需要弄清楚如何递归地遍历每个 List<string> 并将每个列表中的 1 个字符串组合成一个组合 string。不要太担心格式化字符串,因为“实时”代码使用自定义对象。此外,请随意假设每个列表将包含至少 1 个字符串并且没有空值。
【问题讨论】:
-
您的代码如何映射给定问题有点不清楚:输入似乎是一个整数?输出只有一个字符串列表?您能否提供一个更容易理解的问题帐户。此外:是否需要一次生成所有可能的组合?也许惰性实现更有趣。
-
您可能想阅读关于Producing combinations 的 Eric Lipperts 系列
-
输入只是模板的 ID - 该模板只包含模板引用的所有标签的列表。代码的第一部分并不重要。它只是用来大致了解字典中的内容。重要的是结合字典中的所有项目。
-
好的。 2)你如何“组合”字符串?你附加它们吗?你在两者之间使用标记吗?是否必须返回列表列表?
-
@AnthonyNichols:解决方案是对列表数量使用递归:解决一个列表的基本情况的问题,然后解决
n列表的问题(通过将其解决为与第一个列表和其他n-1列表的组合合并)。
标签: c# linq list dictionary