C#数组中的每个项目与同一数组中的每个其他项目

时间:2014-05-19 18:06:52

标签: c# arrays list

我有一个项目数组,我想要做的是某种循环,我将使用该循环使用该数组中的每个对象,并为该数组中的每个其他剩余对象运行测试函数。 / p>

我不想两次使用两个相同的对象,这意味着如果A和B被检查,B和A将不会被检查。

假设我有一个A B C D阵列 现在我想做的是

A B

A C

A D

B C

B D

C D

因此,没有两个相同的元素打印两次。

1 个答案:

答案 0 :(得分:5)

这是一个简单的嵌套循环:

int[] myArray = new int[1000];

for (int x = 0; x < myArray.Length; ++x)
{
    for (int y = x+1; y < myArray.Length; ++y)
    {
        // do something with x and y
    }
}

您应该明白,对于大型阵列,这可能需要很长时间。组合数为n*(n-1)/2。因此,如果您的数组包含1,000个项目,那么您将有近500,000个组合需要检查。