如何在c#中使用冒号索引

本文关键字:索引 | 更新日期: 2023-09-27 17:54:20

我想用A[:,2]这样的语法访问类的实例,这在编程语言中非常普遍。

假设,我有一个类ClassA,在它的属性Content中有一个二维双数组,并创建了它的实例a。

如果我想通过A[2,3]访问A.Content[2,3],我需要在ClassA内部构建这个方法:

public double this[int i, int j]
{
    get
    {
        return this.Content[i,j];
    }
    set
    {
        this.Content[i,j]=value;
    }
}

现在,我可以做"A[2,3]"
作为下一步,我也想做"A[2,:]"(输出将是一维数组),我如何实现它?

如何在c#中使用冒号索引

我不相信这是可能的,因为在c#语言中没有这样的语法(据我所知)。

也许你可以使用GetRow(2)或类似的方法。

public double[] GetRow(int rowNumber)
{
    var result = new double[this.Content.GetLength(0)];
    for(var i=0; i<result.Length; i++)
    {
        result[i] = this.Content[rowNumber, i];
    }
    return result;
}

GetColumn的相同逻辑应该是直接的