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

ASP.NET 陣列基礎與實務範例:從宣告到日期顯示應用

     編輯:關於ASP.NET

陣列是儲存相同資料型別多個值的結構,透過索引(從 0 起算)存取元素。ASP.NET (VB.NET/C#) 中陣列為參考型別,繼承自 System.Array,提供豐富屬性與方法(Length、Rank、Sort、Reverse、LINQ 擴充方法等)。

1. 陣列宣告與初始化

C# 語法

// 固定長度,預設值初始化
int[] numbers = new int[5]; // {0,0,0,0,0}
string[] names = new string[3]; // {null,null,null}

// 宣告同時指定元素(型別推斷)
var days = new[] { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
int[] scores = { 85, 92, 78, 90, 88 }; // 只能在宣告時使用

// 多維陣列
int[,] matrix = new int[3, 4];
int[,] data = { {1,2}, {3,4}, {5,6} };

// 鋸齒陣列
int[][] jagged = new int[3][];
jagged[0] = new int[] {1,2};
jagged[1] = new int[] {3,4,5};

VB.NET 語法

Dim numbers(4) As Integer        ' 0~4 共 5 個
Dim names() As String = {"A", "B", "C"}
Dim matrix(2, 3) As Integer      ' 3x4 多維

2. 常用屬性與方法

成員說明範例
Length總元素數arr.Length
GetLength(d)第 d 維長度matrix.GetLength(0) → 3
Rank維度數matrix.Rank → 2
Sort()原地排序Array.Sort(arr)
Reverse()反轉Array.Reverse(arr)
IndexOf()尋找索引Array.IndexOf(arr, val)
Copy()複製陣列Array.Copy(src, dest, len)
Resize()調整大小Array.Resize(ref arr, newSize)

3. 實務範例:顯示當前日期與星期

原文 VB.NET 範例重寫為現代 C# ASP.NET Web Forms / MVC / Razor Pages 通用邏輯:

// 共用邏輯類別
public static class DateHelper
{
    private static readonly string[] WeekDays = 
        { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };

    public static string GetChineseDateTimeString(DateTime? dt = null)
    {
        dt ??= DateTime.Now;
        // DayOfWeek: Sunday=0 ~ Saturday=6,剛好對應陣列索引
        return $"{dt:yyyy年MM月dd日} {WeekDays[(int)dt.Value.DayOfWeek]}";
    }
}

Web Forms 使用

// .aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
        lblDateTime.Text = DateHelper.GetChineseDateTimeString();
}
<!-- .aspx -->
<asp:Label ID="lblDateTime" runat="server" />

MVC / Razor Pages 使用

// Controller / PageModel
public string CurrentDateTime => DateHelper.GetChineseDateTimeString();
<!-- .cshtml -->
<span>@Model.CurrentDateTime</span>

4. 進階:List<T> vs 陣列 選擇指南

特性陣列 T[]List<T>
大小固定是動態調整
記憶體效能略佳(連續記憶體)略高(內部陣列+擴充邏輯)
功能豐富度基本Add/Remove/Find/排序/轉換豐富
介面傳回建議回傳 IReadOnlyList<T> 或 IEnumerable<T>內部使用 List,對外暴露介面

原則:**內部操作用 List,對外 API/序列化用陣列或唯讀介面**。

5. 常見陷阱

  • Array.Resize 會建立新陣列,原參考不變,需用 ref。
  • 多維陣列 [ , ] 記憶體連續,鋸齒陣列 [] [] 為陣列的陣列,效能與語意不同。
  • 陣列為參考型別,方法傳遞會共用同一實例,若需隔離請 .ToArray() 或 .Clone()。

掌握陣列基礎,配合 LINQ (Where, Select, GroupBy) 即能處理 90% 集合運算需求。

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