.net - 生成 .NET 中多个列的所有可能组合

标签 .net combinatorics

我的文件中有 4 列,每列或多或少包含多个值。我需要获得所有可能的组合,而结果字符串中的列顺序和部分数量应保持不变。

例如第一列包含范围 1-100 的数字,第二列:字母 a-z,第三列也是数字,我会得到类似的内容

1-A-1、2-A-1、3-A-1; 1-B-1、1-B-2、1-B-3 等等。

最佳答案

对此有多种通用方法,但对于您确切知道有多少列的情况,最简单的方法就是使用嵌套循环:

foreach (var a in firstColumn)
{
    foreach (var b in secondColumn)
    {
        foreach (var c in thirdColumn)
        {
           foreach (var d in fourthColumn)
           {
               // Do something with a, b, c, d
           }
        }
    }
}

使用 LINQ 的替代方法:

var query = from a in firstColumn
            from b in secondColumn
            from c in thirdColumn
            from d in fourthColumn
            select new { a, b, c, d };
foreach (var tuple in query)
{
    // Do something with tuple.a, tuple.b etc
}

关于.net - 生成 .NET 中多个列的所有可能组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3541482/

相关文章:

c# - 适当的编程设计问题

.net - 为什么[NonSerialized]在自动实现的属性上不起作用?

prolog - 计算序言中 map 着色的数量

language-agnostic - 一幅图像中有多少种k个相邻像素的组合?

python - 在 Python 中获取集合的子集

python - 从有序列表递归生成组合

c# - 如何使用带有 clickonce 的文本文件并在更新时能够更新它?

c# - 从系统服务调用的 VS 调试 DLL

c# - 当 EventLogEntry.Index 达到 MaxInt 时会发生什么?

arrays - 排名和不排名结合约束