c# - 我可以使用 LINQ 比较两个数组中的范围吗?

标签 c# linq

我可以滚动一个方法,伪:

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;
} 

鉴于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))

请注意,您应该将 Compare 方法设为通用方法,并改用通用 IList<T>

关于c# - 我可以使用 LINQ 比较两个数组中的范围吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61230520/

相关文章:

c# - 为什么我的单例有两个不同的实例?

c# - 可重用的 Linq to XML 方法来过滤我的查询结果

c# - MongoDB C# 驱动程序 : API vs Linq Performance

c# - 即使已添加转换器,也不会调用 Windows Phone 8.1 图像分辨率转换器

c# - oledb 导入 csv 文件 - 奇怪的字符 :˥«¿ added

c# - 子弹不会向前移动,而是停留在枪的位置

c# - Linq 对 Null 值进行排序

c# - 按日期时间间隔对对象进行分组

c# - NHibernate 3.1 与 Linq 的迁移问题

c# - Entity Framework 的重复键异常?