gpt4 book ai didi

c# - 可能的组合

转载 作者:行者123 更新时间:2023-12-03 21:52:04 24 4
gpt4 key购买 nike

我有一个列表数组

List<string>[] possibleLines;

数组可以有不同的大小,每个列表<>也可以有不同数量的字符串。例如

  • List<string>[0] - 可以有字符串“第一个字符串”、“第二个字符串”
  • List<string>[1] - “三弦”、“四弦”、“五弦”

我需要获得所有可能的组合,每个字符串必须来自不同的列表(数组大小可能不同)。例如

  • “第一串”、“第四串”
  • “第一弦”、“第五弦”
  • “二弦”、“四弦”

等等。

最佳答案

您在这里所做的是计算未知数量集合的笛卡尔积。 Eric Lippert 在 this blog post 中描述了如何编写此问题的解决方案。 (我强烈建议您阅读以了解他是如何想出这个解决方案的)。

他最终得到的代码是:

static IEnumerable<IEnumerable<T>> CartesianProduct<T>(
this IEnumerable<IEnumerable<T>> sequences)
{
IEnumerable<IEnumerable<T>> emptyProduct = new[] { Enumerable.Empty<T>() };
return sequences.Aggregate(
emptyProduct,
(accumulator, sequence) =>
from accseq in accumulator
from item in sequence
select accseq.Concat(new[] {item}));
}

关于c# - 可能的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21144485/

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