gpt4 book ai didi

c# - 使用 LINQ 获取二维数组的最大列数

转载 作者:太空狗 更新时间:2023-10-29 22:35:03 32 4
gpt4 key购买 nike

有没有办法使用 LINQ 获取二维数组每列的最大值?

假设我有以下内容:

var arrays = new double[5,100]();

我想得到 arrays[0,:], arrays[1,:] .... arrays[4,:] 的最大值。如何使用 LINQ 来实现?

我本可以使用这种方法

public double GetMax(double[,] arr, int rowIndex)
{
var colCount = arr.GetLength(1);
double max = 0.0;
for(int i=0; i<colCount; i++)
{
max=Math.Max(Math.Abs(arr[rowIndex, i]), max);
}
return max;
}

但我更喜欢更简洁的做事方式。

最佳答案

我想您总是可以使用 Enumerable.Range 作为索引访问的紧凑形式:

public static double GetMax(double[,] arr, int rowIndex)
{
return (from col in Enumerable.Range(0, arr.GetLength(1))
select arr[rowIndex, col]).Max();
}

如果您想为所有 行获取此信息:

public static double[] GetMaxForAllRows(double[,] arr, int rowIndex)
{
return (from row in Enumerable.Range(0, arr.GetLength(0))
let cols = Enumerable.Range(0, arr.GetLength(1))
select cols.Max(col => arr[row, col])).ToArray();
}

关于c# - 使用 LINQ 获取二维数组的最大列数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2582633/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com