2013-01-17 33 views
0

我想用類似A[:,2]的語法來訪問這個類的實例,這在編程語言中非常普遍。如何用c中的冒號索引#

假設,我有一些類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,:]"(輸出將是1維數組),我該如何實現它?

+3

我不相信這是可能的,因爲在C#語言中沒有這樣的語法(據我所知)。也許你可以使用一些方法('GetRow(2)'或類似的東西)。 –

+0

@SteveB:將其作爲答案發布。 –

+0

'A [2]'適合您的用例嗎? –

回答

2

我不相信這是可能的,因爲在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的相同邏輯應該很簡單。

+0

謝謝你的回答!然而,這個想法並不是想以某種方式完成它,而是要有一些語法糖。嚴格地說,A [i,j]也不需要A [i,j],因爲A.Content [i,j]除了糖之外都是一樣的。 –

相關問題