簡體   English   中英

將代碼從Java轉換為C#

[英]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)。

您可以使用ij這樣的變量遍歷引用索引的數組。

只是代替[] []像[I,j]一樣使用它。 其余代碼很好。

要將代碼轉換為C#,只需將boolean替換為bool 兩種語言的其他所有內容都相同。

但是,C#提供了您可能要實現的其他功能。 其中之一是存在真正的多維數組。 它們在單個對象中實現矩陣的多個維度,而[][]符號實際上是鋸齒狀的數組,即數組的數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM