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 };
是的,两者的长度完全相同