我有四个字符串列表。列表数量可能会增加或减少。
列表中的值数量可能会增加或减少。
结果应该:
1.1,2.4,3.2,4.1
答案 0 :(得分:0)
您可以在列表之间应用cross join
并获得所有可能的组合。
var result =
(from val1 in List1
from val2 in List2
from val3 in List3
from val4 in List4
select new double[] {val1,val2,val3,val4}
).ToList();
如果您想要使用,
将string.Join
与,
分开,请在输出中将<{1}}指定为分隔符。
检查此Demo
答案 1 :(得分:0)
var input = new[]
{
new List<double> { 1.1, 1.2 },
new List<double> { 2.1, 2.2, 2.3, 2.4 },
new List<double> { 3.1, 3.2 },
new List<double> { 4.1, 4.2 },
...
};
var output = input.Aggregate((IEnumerable<IEnumerable<double>>)new[] { new double[0] }, (combos, values) =>
values.SelectMany(value => combos.Select(combo =>
combo.Concat(new[] { value }))));
foreach (var combo in output)
{
Console.WriteLine(string.Join(", ", combination));
}