首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Effective C# 原則 40:根據需求選擇集合 (上)

     編輯:關於C語言

沒有銀彈:視情況選擇集合

.NET 提供陣列、類陣列集合、雜湊集合等 20 多種實作 ICollection 的類別。選擇依據:操作類型、效能目標、擴充彈性(參見原則 19 介面導向)。

陣列:最簡單、通常最快

  • 型別安全:宣告 int[] 即建立儲存 int 的 System.Array 衍生類別,避免裝箱/拆箱(參見原則 17)。
  • 索引存取、foreach、列舉器皆支援。

多維陣列 vs 交錯陣列

交錯陣列(int[][])各列長度可異,初始化需多行程式碼,存取需雙重指標查找。多維陣列(int[,])各維度長度固定,初始化單行,編譯器產生指標運算,存取更快(特別是列/對角線)。


// 多維陣列宣告與初始化
private int[,] _multi = new int[10, 10];

// 棋盤範例
private Square[,] _theBoard = new Square[8, 8];
for (int i = 0; i < _theBoard.GetLength(0); i++)
    for (int j = 0; j < _theBoard.GetLength(1); j++)
        _theBoard[i, j] = new Square();

// 存取與迭代
Square sq = _theBoard[4, 4];
foreach (Square s in _theBoard) s.PaintSquare();

交錯陣列迭代需雙重 foreach,語法較繁瑣。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved