簡體   English   中英

LINQ查找二維鋸齒狀數組最小值,返回索引

[英]c# - LINQ find 2D jagged array minimum, return index

我有一個標准的2D鋸齒狀數組int[][] arr

讓我們將ij稱為行和列的索引。

我想通過LINQ檢索指向矩陣最小值的索引ij

我想要達到的目標是

from num in arr
where min = (from num in arr select min(num))
select i, j

您可以使用SelectManySelect的重載(包括索引),然后使用OrderByFirst重載來獲取具有最小值的一組索引。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM