gpt4 book ai didi

c# - List>的组合

转载 作者:IT王子 更新时间:2023-10-29 04:20:28 26 4
gpt4 key购买 nike

我有一个这种类型的列表> 包含这个

List<int> A = new List<int> {1, 2, 3, 4, 5};
List<int> B = new List<int> {0, 1};
List<int> C = new List<int> {6};
List<int> X = new List<int> {....,....};

我想要这样的所有组合

1-0-6
1-1-6
2-0-6
2-1-6
3-0-6

等等。

根据您的说法,使用 Linq 可以解决这个问题吗?

最佳答案

它与 this answer 非常相似我给了另一个问题:

var combinations = from a in A
from b in B
from c in C
orderby a, b, c
select new List<int> { a, b, c };

var x = combinations.ToList();

对于可变数量的输入,现在添加了泛型:

var x = AllCombinationsOf(A, B, C);

public static List<List<T>> AllCombinationsOf<T>(params List<T>[] sets)
{
// need array bounds checking etc for production
var combinations = new List<List<T>>();

// prime the data
foreach (var value in sets[0])
combinations.Add(new List<T> { value });

foreach (var set in sets.Skip(1))
combinations = AddExtraSet(combinations, set);

return combinations;
}

private static List<List<T>> AddExtraSet<T>
(List<List<T>> combinations, List<T> set)
{
var newCombinations = from value in set
from combination in combinations
select new List<T>(combination) { value };

return newCombinations.ToList();
}

关于c# - List<List<int>>的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/545703/

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