第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在C#中多維數(shù)組和數(shù)組之間有什么區(qū)別?

在C#中多維數(shù)組和數(shù)組之間有什么區(qū)別?

慕哥9229398 2019-05-31 13:02:35
在C#中多維數(shù)組和數(shù)組之間有什么區(qū)別?多維數(shù)組之間有什么區(qū)別?double[,]以及數(shù)組double[][]在C#?如果有不同之處,那么對每一個人來說,什么是最好的呢?
查看完整描述

3 回答

?
躍然一笑

TA貢獻1826條經(jīng)驗 獲得超6個贊

陣列(鋸齒陣列)比多維陣列更快,可以更有效地使用。多維數(shù)組具有更好的語法。

如果使用交錯數(shù)組和多維數(shù)組編寫一些簡單的代碼,然后使用IL反匯編程序檢查編譯后的程序集,您將看到從鋸齒狀(或一維)數(shù)組中存儲和檢索的是簡單的IL指令,而對于多維數(shù)組的相同操作是方法調(diào)用,而方法調(diào)用總是比較慢。

考慮以下方法:

static void SetElementAt(int[][] array, int i, int j, int value){
    array[i][j] = value;}static void SetElementAt(int[,] array, int i, int j, int value){
    array[i, j] = value;}

他們的IL為:

.method private hidebysig static void  SetElementAt(int32[][] 'array',
                                                    int32 i,
                                                    int32 j,
                                                    int32 'value') cil managed{
  // Code size       7 (0x7)
  .maxstack  8
  IL_0000:  ldarg.0
  IL_0001:  ldarg.1
  IL_0002:  ldelem.ref
  IL_0003:  ldarg.2
  IL_0004:  ldarg.3
  IL_0005:  stelem.i4
  IL_0006:  ret} // end of method Program::SetElementAt.method private hidebysig static void  SetElementAt(int32[0...,0...] 'array',
                                                    int32 i,
                                                    int32 j,
                                                    int32 'value') cil managed{
  // Code size       10 (0xa)
  .maxstack  8
  IL_0000:  ldarg.0
  IL_0001:  ldarg.1
  IL_0002:  ldarg.2
  IL_0003:  ldarg.3
  IL_0004:  call       instance void int32[0...,0...]::Set(int32,
                                                           int32,
                                                           int32)
  IL_0009:  ret} // end of method Program::SetElementAt

當(dāng)使用交錯數(shù)組時,可以輕松地執(zhí)行諸如行交換和行大小調(diào)整等操作。在某些情況下,使用多維數(shù)組可能會更安全,但即使是MicrosoftFxCop也告訴您,在分析項目時,應(yīng)該使用交錯數(shù)組而不是多維數(shù)組。


查看完整回答
反對 回復(fù) 2019-05-31
?
蝴蝶刀刀

TA貢獻1801條經(jīng)驗 獲得超8個贊


簡單地說,多維數(shù)組類似于DBMS中的表。

數(shù)組(鋸齒數(shù)組)允許每個元素持有相同類型的變量長度的另一個數(shù)組。


因此,如果您確信數(shù)據(jù)的結(jié)構(gòu)看起來像一個表(固定行/列),則可以使用多維數(shù)組。鋸齒數(shù)組是固定的元素&每個元素都可以容納一個可變長度的數(shù)組。


例如:Psuedocode:


int[,] data = new int[2,2];

data[0,0] = 1;

data[0,1] = 2;

data[1,0] = 3;

data[1,1] = 4;

將上面的內(nèi)容看作是一個2x2表:


1 | 2

3 | 4

int[][] jagged = new int[3][]; 

jagged[0] = new int[4] {  1,  2,  3,  4 }; 

jagged[1] = new int[2] { 11, 12 }; 

jagged[2] = new int[3] { 21, 22, 23 }; 

假設(shè)上面的每一行都有可變的列數(shù):


 1 |  2 |  3 | 4

11 | 12

21 | 22 | 23


查看完整回答
反對 回復(fù) 2019-05-31
  • 3 回答
  • 0 關(guān)注
  • 747 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號