Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#索引搜索中的二维数组,使用lambda表达式进行数组搜索_C#_Arrays - Fatal编程技术网

c#索引搜索中的二维数组,使用lambda表达式进行数组搜索

c#索引搜索中的二维数组,使用lambda表达式进行数组搜索,c#,arrays,C#,Arrays,我有一个2d阵列:- int[,] group = {{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20},{21,22,23,24,25},}; 现在,除此之外,我还有两个其他阵列:- int[]array1=新的int[]{0,2,4} int[]array2=新的int[]{1,3} 我想要的是一个结果数组,它的宽度取自array1,长度取自array2 ,以便生成的数组 arrayrel={群[0,1],群[0,3],群[

我有一个2d阵列:-

int[,] group = {{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20},{21,22,23,24,25},};
现在,除此之外,我还有两个其他阵列:-

int[]array1=新的int[]{0,2,4}

int[]array2=新的int[]{1,3}

我想要的是一个结果数组,它的宽度取自array1,长度取自array2 ,以便生成的数组

arrayrel={群[0,1],群[0,3],群[2,1],群[2,3],群[4,1]群[4,3]}

arrayrel={2,4,12,14,22,24}


这可以使用loop实现。我想知道是否有一种方法可以使用lambda表达式实现这一结果。

您可以使用
选择
,然后
选择many

int[] arrayrel = array1.Select(i => array2.Select(j => group[i, j])).SelectMany(x => x).ToArray();

第一个
Select
生成一个
IEnumerable
,您可以使用
SelectMany
将其展平,然后使用
SelectMany

int[] arrayrel = array1.Select(i => array2.Select(j => group[i, j])).SelectMany(x => x).ToArray();

第一个
Select
生成一个
IEnumerable
,您可以使用
SelectMany
将其展平,您可以按如下方式执行:

var result = array1.SelectMany(row => array2.Select(col => group[row, col]));

如果要将结果从
IEnumerable
转换为
int[]
,则需要在语句末尾添加
toArray()

您可以按如下操作:

var result = array1.SelectMany(row => array2.Select(col => group[row, col]));
如果要将结果从
IEnumerable
转换为
int[]
,则需要在语句末尾添加
toArray()