如何比较两个数组:
array1[i+10]==array2[i]
总是如此吗?
我知道以下可以比较数组,但是这个具体情况呢?
bool isEqual = Enumerable.SequenceEqual(array1, array2);
答案 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个元素时才有效。