[英]c# - LINQ find 2D jagged array minimum, return index
我有一個標准的2D鋸齒狀數組int[][] arr
。
讓我們將i
和j
稱為行和列的索引。
我想通過LINQ檢索指向矩陣最小值的索引i
和j
。
我想要達到的目標是
from num in arr
where min = (from num in arr select min(num))
select i, j
您可以使用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;
您也可以這樣做:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.