Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C语言中比较两个2D数组#_C#_Arrays_Comparison_2d - Fatal编程技术网

C# 如何在C语言中比较两个2D数组#

C# 如何在C语言中比较两个2D数组#,c#,arrays,comparison,2d,C#,Arrays,Comparison,2d,我有两个不同长度的二维数组,都是double类型。我试图将第一个数组的内容与第二个数组的内容进行比较。但是,当第一个元素中的一个值等于第二个元素中的一个值时,得分会增加,而不是当i和j的值都等于x和y的值时。谁能帮帮我吗?我使用的代码可以在下面找到: if (result1.Length <= result2.Length) { for (int i = 0; i < 2; i++) {

我有两个不同长度的二维数组,都是double类型。我试图将第一个数组的内容与第二个数组的内容进行比较。但是,当第一个元素中的一个值等于第二个元素中的一个值时,得分会增加,而不是当i和j的值都等于x和y的值时。谁能帮帮我吗?我使用的代码可以在下面找到:

    if (result1.Length <= result2.Length)
            {
                for (int i = 0; i < 2; i++)
                {
                    for (int j = 0; j < result1.Length / 2; j++)
                    {
                        for (int x = 0; x < 2; x++)
                        {
                            for (int y = 0; y < result2.Length / 2; y++)
                            {
                                if (result1.GetValue(i, j).Equals(result2.GetValue(x, y)))
                                {
                                    score++;

                                }
                            }
                        }
                    }
                }
if(result1.Length试试:

if(result1[i,j] == result2[i,j])
score++;

根据您在下面的评论进行更新,我认为您需要同时检查第一列相等和第二列相等,并且只有在两者匹配时才增加分数

if (result1.Length <= result2.Length)
{
    for(int i = 0; i < result1.Length; i++)
    {
        for(int j = 0; j < result2.Length; j++)
        {
            if (result1[i,0] == result2[j,0] && result1[i,1] == result2[j,1])
            {
                score++;
            }
        }
    }
}

if(result1.Length它仍然不起作用。问题是它只是比较i值而不是i和j值。我试图做的是在result2中的每个元素中搜索result1中的每个元素。结果是从具有两列的文本文件中获得的,因此需要使用2d数组来存储结果。分数将用于mpare数组的相似程度。我还必须选择数组的起始位置和结束位置,这些位置相似。但是,一旦元素被正确比较,我将处理这些位置。result1是否表示文本文件的第一列,result2是否表示第二列?您能给出一些示例输入和输出吗?result1是一个文本文件,结果2是另一个文本文件。结果1-51 2 1-42.66667 2 0.6 5 0.625-51 2 1-42.667 2 0.6 2 1 0 1.66667-20.6 0 1.667 2 0.6 0 1.66667-42 0 1 0.3 2 2 1.42857结果2 3 5.42857 0.608696 2853 3.28571-30.0921053 3 5.42857 0 0 0.608696 0 3 3 0 3.28571-8 0.7777778 1 3 3-1.3330.3330.6371 -3 0.0921053 3 5.42857 0 0.608696 0 3.28571 -8 0.0777778 1 0.6 4 1.97368 3 5.42857 0 0.608696 0 3.28571 -3 0.0921053 3 5.42857 0 0.608696 0 3.28571 -8 0.0777778 1 3 -1 0.333333 0 3 0 0.608696 0 3.28571 -8 0.0777778 1 3 -1 1 0 1 0 1 0 1