C#-检查两个集合的索引值

C#-检查两个集合的索引值,c#,linq,C#,Linq,从两组开始 var set1 =new int[] { 1, 2, 3 }; var set2 =new int[] { 100, 200, 300 }; 如何检查集合1和集合2中元素的索引值?set1元素的if索引值 等于set2元素的索引值,那么我想要像这样的一对 {1,100} ,{2,200},{3,300}. 一些不完整的代码 var pairs=from n1 in set1 from n2 in (from num in set2 where ((num1

从两组开始

var set1 =new int[] { 1, 2, 3 };
var set2 =new int[] { 100, 200, 300 };
如何检查集合1和集合2中元素的索引值?set1元素的if索引值 等于set2元素的索引值,那么我想要像这样的一对

{1,100} ,{2,200},{3,300}.
一些不完整的代码

var pairs=from n1 in set1 
          from n2 in (from num in set2 where ((num1,index)=> );

我假设您只想加入这两个数组。我会这样做的

var pairs=from n1 in set1  
          from n2 in set2
          select new
          {
               n1,
               n2
          }

这将返回两个集合的组合。这是假设两个集合都已排序。

例如,您可以执行以下操作:

var pairs=
  set1.Select((item, index) => new
  {
      n1= item, n2= set2[index]
  }).ToArray();
或者,如果set2没有索引器,则按如下方式获取n2:

n2 = set2.Skip(index).Take(1).Single()
看看这个

int[] set1 = {1, 2, 3};
int[] set2 = {100, 200, 300};

var t = from i1 in set1
        from i2 in set2
        where Array.IndexOf(set1, i1) == Array.IndexOf(set2, i2)
        select new int[] { i1, i2 };

是的,两者的长度完全相同