比较两个数组(一个数组中每个值增加一个)

时间:2015-12-09 21:22:45

标签: c# c#-4.0

如何比较两个数组:

array1[i+10]==array2[i] 

总是如此吗?

我知道以下可以比较数组,但是这个具体情况呢?

bool isEqual = Enumerable.SequenceEqual(array1, array2);

2 个答案:

答案 0 :(得分:0)

老式的方式:

int length = array2.Length;
bool areEqual = true;
for(int i = 0; i < length; i++)
{
    if(array1[i] + 10 = array2[i])
    {
        areEqual = false;
        break;
    }
}

linq方式:

var query1 = array1.Select(i => i + 10);
bool areEqual = Enumerable.SequenceEqual(query1,array2);

答案 1 :(得分:0)

答案因array1[i+10]==array2[i]的含义而异。

如果array2的值应该比array1的值高10倍:

使用Select创建一个临时数组,为array1中的每个值添加10,然后与array2进行比较:

bool equal2 = Enumerable.SequenceEqual(array1.Select(n => n + 10), array2);

如果array2的值应与array1相同,则转移超过10个位置

使用Skip跳过array1的前10个元素,然后与array2进行比较:

bool equal = Enumerable.SequenceEqual(array1.Skip(10), array2);

请注意,仅当array1的元素比array2多10个元素时才有效。