LINQ查找二维锯齿数组最小值,返回索引
本文关键字:数组 最小值 索引 返回 二维 查找 LINQ | 更新日期: 2023-09-27 18:18:23
我有一个标准的2D锯齿数组int[][] arr
。
我们称i
和j
为行和列的下标。
我想通过LINQ检索索引i
和j
,它们指向矩阵的最小值。
我想要实现的一个想法是bri
from num in arr
where min = (from num in arr select min(num))
select i, j
你也可以这样做:
var result = from i in Enumerable.Range(0, arr.Length)
from j in Enumerable.Range(0, arr[i].Length)
orderby arr[i][j]
select new { i, j };
var r = result.FirstOrDefault();// here is the indexes of min value
您可以使用包含索引的SelectMany
和Select
的重载,然后使用OrderBy
和First
的重载来获得具有最小值的索引集之一。
var min = arr.SelectMany((subArr, i) => subArr.Select((value, j) => new { i, j, value }))
.OrderBy(x => x.value)
.First();
int firstIndex = min.i;
int secondIndex = min.j;