C#使用Linq从锯齿状数组中获取列

C#使用Linq从锯齿状数组中获取列,第1张

概述如何使用 Linq从锯齿状数组中获取列的元素作为平面数组???? public class Matrix<T>{ private readonly T[][] _matrix; public Matrix(int rows, int cols) { _matrix = new T[rows][]; for (int r = 0; r < 如何使用 Linq从锯齿状数组中获取列的元素作为平面数组????
public class Matrix<T>{    private Readonly T[][] _matrix;    public Matrix(int rows,int cols)    {        _matrix = new T[rows][];        for (int r = 0; r < rows; r++)        {            _matrix[r] = new T[cols];        }    }    public T this[int x,int y]    {        get { return _matrix[x][y]; }        set { _matrix[x][y] = value; }    }    // Given a column number return the elements    public IEnumerable<T> this[int x]    {        get        {        }    }}Matrix<double> matrix = new Matrix<double>(6,2);matrix[0,0] = 0;matrix[0,1] = 0;matrix[1,0] = 16.0;matrix[1,1] = 4.0;matrix[2,0] = 1.0;matrix[2,1] = 6.0;matrix[3,0] = 5.0;matrix[3,1] = 7.0;matrix[4,0] = 1.3;matrix[4,1] = 1.0;matrix[5,0] = 1.5;matrix[5,1] = 4.5;
解决方法 只是:
public IEnumerable<T> this[int x]{    get    {       return _matrix.Select(row => row[x]);    }}

当然最好在liNQ查询之前检查x是否不在范围之外.

无论如何,鉴于您正在处理矩阵,为了更加清晰,您可以切换到bidimensional array而不是锯齿状阵列(因此毫无疑问,这两个维度的大小).

相反,如果性能确实对您很重要,请继续使用看似比二维数组快一点的锯齿状数组(例如LINK1,LINK2).

总结

以上是内存溢出为你收集整理的C#使用Linq从锯齿状数组中获取列全部内容,希望文章能够帮你解决C#使用Linq从锯齿状数组中获取列所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1238955.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存