比较两个数组并返回其余数据

时间:2015-02-02 19:58:18

标签: c# .net arrays multidimensional-array jagged-arrays

我正在为学习目的做一个图像比较器。

我已经完成了几乎所有的事情,现在我正在改进它。为了检查相似性,我有2个锯齿状多维数组(byte[][,]),我使用三重for循环访问每个数组的每个元素并存储它们的余数,如下所示:

for (int dimension = 0; dimension < 8; dimension++)
{
    Parallel.For(0, 16, mycolumn =>
    {
        Parallel.For(0, 16, myrow =>
        {
            Diffs[dimension][mycolumn, myrow] =
                (byte)Math.Abs(Image1Bytes[dimension][mycolumn, myrow]
                - Image2Bytes[dimension][mycolumn, myrow]);
        });
    });
}

现在,我想检查每个维度在另一个集合中与另一个维度相等的多少。

我如何比较每个数组中的整个数组(如array1[i][,] == array2[j][,])?

我认为有更好的方法来完成这些操作,但我已经设法很快完成了这些操作。

2 个答案:

答案 0 :(得分:0)

这是一个比较两个图像的旧线程,这些图像很容易适应您的需求。

Compare Bitmaps

答案 1 :(得分:0)

由于Array支持IStructuralEquatable接口,因此您可以使用结构比较:

using System.Collections;

. . .

var areEqual = StructuralComparisons.StructuralEqualityComparer.Equals(array1[i], array2[j]);