我可以推出一个方法,伪:
bool Compare(IList left, int lIndex, IList right, int rIndex, int num)
{
for(int i=0;i<num;++i)
{
if(left[lIndex+i] != right[rIndex+i])
{
return false;
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
所以给出L =[1,2,3,4,5,6,7,8]和R = [5,6,7,8,9]:Compare(L,5,R,1,3) == true
我觉得我应该能够做一个简单的 LINQ 版本,但我不确定如何处理索引。它可以写成一个简单的 LINQ/lambda 吗...否则我会把它作为一个实用方法。
顺便说一下,有一个标题非常相似的问题,但它提出了不同的问题:https : //stackoverflow.com/questions/33812323/compare-two-arrays-using-linq
你可以Skip,Take和SequenceEqual:
return left.Skip(lIndex).Take(num).SequenceEqual(
right.Skip(rIndex).Take(num))
Run Code Online (Sandbox Code Playgroud)
请注意,您应该使您的Compare方法泛型并使用泛型IList<T>代替。
| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |