[英]Translate code from Java to C#
我在Java中使用一種方法,但我也希望在C#中使用它。 它用於判斷int矩陣是否可傳遞。
static boolean isTransitive(boolean[][] matrix) {
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix.length; j++) {
if (matrix[i][j]) {
for (int k = 0; k < matrix.length; k++) {
if (matrix[j][k] && !matrix[i][k]) {
return false;
}
}
}
}
}
return true;
}
我的主要問題是,我不知道C#中的matrix [i] [j]是什么意思?
代碼是否可以與此4x4 int數組一起使用?:
transNumbers[0, 0] = 0;
transNumbers[0, 1] = 1;
transNumbers[0, 2] = 0;
transNumbers[0, 3] = 0;
transNumbers[1, 0] = 1;
transNumbers[1, 1] = 0;
transNumbers[1, 2] = 1;
transNumbers[1, 3] = 0;
transNumbers[2, 0] = 0;
transNumbers[2, 1] = 0;
transNumbers[2, 2] = 0;
transNumbers[2, 3] = 1;
transNumbers[3, 0] = 0;
transNumbers[3, 1] = 0;
transNumbers[3, 2] = 0;
transNumbers[3, 3] = 0;
matrix [i] [j]在C#中的含義與在Java中的含義完全相同。
就是說,您的矩陣似乎是布爾值的矩陣,而不是您所描述的整數!
多維數組在C#中每個維度定義為。
例如
int[,] test = new int[list1.Count, list2.Count]
http://bytes.com/topic/c-sharp/answers/531671-array-matrix-definition
由於您使用的是boolean
矩陣,因此代碼中的if (matrix[i][j])
表示該特定索引[i][j]
的boolean
元素是否為true。
將其更簡單地分解:
考慮一個數組:
[1][2][3]
[4][5][6]
[7][8][9]
每個元素都可以使用其索引進行訪問。 因此,假設元素5具有索引[1][1]
。(請記住,索引從0開始,而不是1)。
您可以使用i
和j
這樣的變量遍歷引用索引的數組。
只是代替[] []像[I,j]一樣使用它。 其余代碼很好。
要將代碼轉換為C#,只需將boolean
替換為bool
。 兩種語言的其他所有內容都相同。
但是,C#提供了您可能要實現的其他功能。 其中之一是存在真正的多維數組。 它們在單個對象中實現矩陣的多個維度,而[][]
符號實際上是鋸齒狀的數組,即數組的數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.