日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#教程7:数组

發布時間:2025/3/21 C# 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#教程7:数组 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、C# array數組定義

????????數組是數據的集合。標量變量一次只能保存一項。數組可以容納多個項目。這些項目稱為數組的元素。數組存儲相同數據類型的數據。每個元素都可以通過索引來引用。數組是從零開始的。第一個元素的索引為零。數組是引用類型。

????????數組用于存儲我們應用程序的數據。我們將數組聲明為某種數據類型。我們指定它們的長度。我們用數據初始化數組。我們有幾種處理數組的方法。我們可以修改元素、對其進行排序、復制或搜索它們。

int[] ages; String[] names; float[] weights;

我們有三個數組聲明。聲明由兩部分組成。數組的類型和數組名稱。數組的類型具有確定數組中元素類型的數據類型(在我們的示例中為 int、String、float)和一對方括號 []。括號表示我們有一個數組。

集合具有類似的目的。它們比數組更強大。稍后將在單獨的章節中描述它們。

二、C#初始化數組

有幾種方法,我們可以如何在 C# 中初始化一個數組。

Program.cs

int[] array = new int[5];array[0] = 1; array[1] = 2; array[2] = 3; array[3] = 4; array[4] = 5;for (int i = 0; i < array.Length; i++) {Console.WriteLine(array[i]); }

我們聲明并初始化一個數值數組。數組的內容被打印到控制臺。

int[] array = new int[5];

這里我們聲明一個包含五個元素的數組。所有元素都是整數。

array[0] = 1; array[1] = 2; ...

我們用一些數據初始化數組。這是賦值初始化。索引在方括號中。數字 1 將是數組的第一個元素,2 是第二個。

for (int i = 0; i < array.Length; i++) {Console.WriteLine(array[i]); }

我們遍歷數組并打印它的元素。數組有一個 Length 屬性,它給出了數組中元素的數量。由于數組是從零開始的,因此索引是 0..length-1。

我們可以在一個語句中聲明和初始化一個數組。

Program.cs

int[] array = new int[] { 2, 4, 5, 6, 7, 3, 2 };foreach (int i in array) {Console.WriteLine(i); }

這是先前程序的修改版本。

int[] array = new int[] {2, 4, 5, 6, 7, 3, 2 };

一個數組在一個步驟中被聲明和初始化。元素在大括號中指定。我們沒有指定數組的長度。編譯器會為我們做這件事。

foreach (int i in array) {Console.WriteLine(i); }

我們使用 foreach 關鍵字遍歷數組并打印其內容。

三、C#?數組訪問元素

創建數組后,可以通過索引訪問其元素。索引是放在數組名稱后面的方括號內的數字。

我們可以使用 end ^ 運算符的索引從數組末尾獲取元素。 ^0 等于 array.Length,^n 等于 array.Length - n。

Program.cs

string[] names = { "Jane", "Thomas", "Lucy", "David" };Console.WriteLine(names[0]); Console.WriteLine(names[1]); Console.WriteLine(names[2]); Console.WriteLine(names[3]);Console.WriteLine("*************************");Console.WriteLine(names[^1]); Console.WriteLine(names[^2]); Console.WriteLine(names[^3]); Console.WriteLine(names[^4]);

在示例中,我們創建了一個字符串名稱數組。我們通過索引訪問每個元素并將它們打印到終端。

string[] names = { "Jane", "Thomas", "Lucy", "David" };

創建了一個字符串數組。

Console.WriteLine(names[0]); Console.WriteLine(names[1]); Console.WriteLine(names[2]); Console.WriteLine(names[3]);

數組的每個元素都打印到控制臺。對于 names[0] 結構,我們指的是 names 數組的第一個元素。

Console.WriteLine(names[^1]); Console.WriteLine(names[^2]); Console.WriteLine(names[^3]); Console.WriteLine(names[^4]);

我們從末尾訪問數組元素。

$ dotnet run
Jane
Thomas
Lucy
David
*************************
David
Lucy
Thomas
Jane

四、C# 修改數組元素

可以修改數組的元素——它們不是不可變的。

Program.cs

int[] vals = { 1, 2, 3, 4 };vals[0] *= 2; vals[1] *= 2; vals[2] *= 2; vals[3] *= 2;Console.WriteLine("[{0}]", string.Join(", ", vals));

我們有一個由三個整數組成的數組。每個值將乘以 2。

int[] vals = { 1, 2, 3, 4 };

An array of three integers is created.

vals[0] *= 2; vals[1] *= 2; vals[2] *= 2; vals[3] *= 2;

使用元素訪問,我們將數組中的每個值乘以 2。

Console.WriteLine("[{0}]", string.Join(", ", vals));

使用 Join 方法,我們從數組的所有元素中創建一個字符串。元素用逗號分隔。

$ dotnet run [2, 4, 6, 8]

所有四個整數都乘以數字 2。

五 、C#?數組切片

我們可以使用 .. 運算符來獲取數組切片。范圍指定范圍的開始和結束。范圍的開始是包含的,但范圍的結束是排除的。這意味著開始包含在范圍內,但結束不包含在范圍內。

Program.cs

int[] vals = { 1, 2, 3, 4, 5, 6, 7 };int[] vals2 = vals[1..5]; Console.WriteLine("[{0}]", string.Join(", ", vals2));int[] vals3 = vals[..6]; Console.WriteLine("[{0}]", string.Join(", ", vals3));int[] vals4 = vals[3..]; Console.WriteLine("[{0}]", string.Join(", ", vals4));

該示例適用于數組范圍。

int[] vals2 = vals[1..5];

我們創建一個數組切片,其中包含從索引 1 到索引 4 的元素。

int[] vals3 = vals[..6];

如果省略起始索引,則切片從索引 0 開始。

int[] vals4 = vals[3..];

如果省略結束索引,則切片一直到數組的末尾。

$ dotnet run [2, 3, 4, 5] [1, 2, 3, 4, 5, 6] [4, 5, 6, 7]

六、C#?遍歷數組

我們經常需要遍歷數組的所有元素。我們展示了遍歷數組的兩種常用方法。

Program.cs

string[] planets = { "Mercury", "Venus", "Mars","Earth", "Jupiter", "Saturn", "Uranus", "Neptune", "Pluto" };for (int i=0; i < planets.Length; i++) {Console.WriteLine(planets[i]); }foreach (string planet in planets) {Console.WriteLine(planet); }

創建了一個行星名稱數組。我們使用 for 和 foreach 語句來打印所有值。

for (int i=0; i < planets.Length; i++) {Console.WriteLine(planets[i]); }

在這個循環中,我們利用了可以從數組對象中獲取元素數量的事實。元素的數量存儲在 Length 屬性中。

foreach (string planet in planets) {Console.WriteLine(planet); }

foreach 語句可用于在遍歷數組或其他集合時使代碼更緊湊。在每個循環中,將行星變量傳遞給行星數組中的下一個值。

七、C#? 數組維度

到目前為止,我們已經使用了一維數組。指定元素所需的索引數稱為數組的維度或等級。

7.1 二維數組

接下來,我們使用二維數組。

Program.cs

int[,] twodim = new int[,] { {1, 2, 3}, {1, 2, 3} };int d1 = twodim.GetLength(0); int d2 = twodim.GetLength(1);for (int i=0; i<d1; i++) {for (int j=0; j<d2; j++){Console.WriteLine(twodim[i, j]);} }

如果我們需要兩個索引來訪問數組中的元素,那么我們就有一個二維數組。

int[,] twodim = new int[,] { {1, 2, 3}, {1, 2, 3} };

我們在一個語句中聲明和初始化一個二維數組。注意方括號內的逗號。

int d1 = twodim.GetLength(0); int d2 = twodim.GetLength(1);

我們得到數組的維度。 GetLength 獲取數組指定維度中的元素數。

for (int i=0; i<d1; i++) {for (int j=0; j<d2; j++){Console.WriteLine(twodim[i, j]);} }

我們使用兩個 for 循環遍歷二維數組的所有元素。請注意,特定數組元素是使用兩個索引獲得的,由逗號分隔。

$ dotnet run 1 2 3 1 2 3

我們可以使用 foreach 循環遍歷二維數組。

Program.cs

int[,] vals = new int[4, 2] {{ 9, 99 },{ 3, 33 },{ 4, 44 },{ 1, 11 } };foreach (var val in vals) {Console.WriteLine(val); }

使用 foreach 循環,我們從頭到尾一個接一個地獲取元素。

$ dotnet run 9 99 3 33 4 44 1 11

7.2 三維數組

接下來,我們使用一個三維數組。

Program.cs

int[,,] n3 = {{{12, 2, 8}},{{14, 5, 2}},{{3, 26, 9}},{{4, 11, 2}} };int d1 = n3.GetLength(0); int d2 = n3.GetLength(1); int d3 = n3.GetLength(2);for (int i=0; i<d1; i++) {for (int j=0; j<d2; j++){for (int k=0; k<d3; k++){Console.Write(n3[i, j, k] + " ");}} }Console.Write('\n');

我們有一個數字三維數組。同樣,我們用數字初始化數組并將它們打印到終端。

int[,,] n3 = {{{12, 2, 8}},{{14, 5, 2}},{{3, 26, 9}},{{4, 11, 2}} };

左側的方括號和右側的附加大括號之間還有另一個逗號。

for (int k=0; k<d3; k++) {Console.Write(n3[i, j, k] + " "); }

這個循環穿過第三個維度。我們使用三個索引從數組中檢索值。

$ dotnet run 12 2 8 14 5 2 3 26 9 4 11 2

7.3 C#數組的秩

有一個 Rank 屬性給出了數組的維數。

Program.cs

int[] a1 = { 1, 2 }; int[,] a2 = { { 1 }, { 2 } }; int[,,] a3 = { { { 1, 2 }, { 2, 1 } } };Console.WriteLine(a1.Rank); Console.WriteLine(a2.Rank); Console.WriteLine(a3.Rank);

我們有三個數組。我們使用 Rank 屬性來獲取每個維度的維數。

Console.WriteLine(a1.Rank);

Here we get the rank for the first array.

$ dotnet run 1 2 3

八、C# 非等長數列

????????具有相同大小元素的數組稱為矩形數組。相反,具有不同大小元素的數組稱為鋸齒狀數組。鋸齒狀數組的聲明和初始化方式不同。

Program.cs

int[][] jagged = new int[][] {new int[] { 1, 2 },new int[] { 1, 2, 3 },new int[] { 1, 2, 3, 4 } };foreach (int[] array in jagged) {foreach (int e in array){Console.Write(e + " ");} }Console.Write('\n');

這是一個鋸齒狀數組的例子。

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

這是一個鋸齒狀數組的聲明和初始化。請注意,這一次,我們使用了兩對方括號。我們有一個數組數組。更具體地說,我們已經聲明了一個具有三個 int 數據類型的數組。每個數組都有不同數量的元素。

foreach (int[] array in jagged) {foreach (int e in array){Console.Write(e + " ");} }

我們使用兩個 foreach 循環來遍歷鋸齒狀數組。在第一個循環中,我們得到了數組。在第二個循環中,我們獲取所獲得數組的元素。

九、C#向量的方法

????????有多種處理數組的方法。這些方法可用于檢索、修改、排序、復制、搜索數據。我們使用的這些方法是 Array 類的靜態方法或數組對象的成員方法。

Program.cs

string[] names = {"Jane", "Frank", "Alice", "Tom" };Array.Sort(names);foreach(string el in names) {Console.Write(el + " "); }Console.Write('\n');Array.Reverse(names);foreach(string el in names) {Console.Write(el + " "); }Console.Write('\n');

在此示例中,我們對數據進行排序。

string[] names = {"Jane", "Frank", "Alice", "Tom" };

我們有一個字符串數組。

Array.Sort(names);

靜態排序方法按字母順序對數據進行排序。

Array.Reverse(names);

Reverse 方法反轉整個一維數組中元素的順序。

$ dotnet run Alice Frank Jane Tom Tom Jane Frank Alice

我們按升序和降序對名稱進行了排序。

以下示例使用 SeValue、GetValue、IndexOf、Copy 和 Clear 方法。

Program.cs

string[] names = {"Jane", "Frank", "Alice", "Tom"}; string[] girls = new string[5];names.SetValue("Beky", 1); names.SetValue("Erzebeth", 3);Console.WriteLine(names.GetValue(1)); Console.WriteLine(names.GetValue(3));Console.WriteLine(Array.IndexOf(names, "Erzebeth"));Array.Copy(names, girls, names.Length);foreach(string girl in girls) {Console.Write(girl + " "); }Console.Write('\n');Array.Clear(names, 0, 2);foreach(string name in names) {Console.Write(name + " "); }Console.Write('\n');

此示例介紹了其他方法。

names.SetValue("Beky", 1); names.SetValue("Erzebeth", 3);

SetValue 為數組中的特定索引設置一個值。

Console.WriteLine(names.GetValue(1)); Console.WriteLine(names.GetValue(3));

我們使用 GetValue 方法從數組中檢索值。

Console.WriteLine(Array.IndexOf(names, "Erzebeth"));

IndexOf 方法返回特定值第一次出現的索引。

Array.Copy(names, girls, names.Length);

Copy 方法將值從源數組復制到目標數組。第一個參數是源數組,第二個是目標數組。第三個參數是長度;它指定要復制的元素數量。

Array.Clear(names, 0, 2);

Clear 方法從數組中刪除所有元素。它需要三個參數:數組、起始索引和從索引中清除的元素數。

$ dotnet run Beky Erzebeth 3 Jane Beky Alice ErzebethAlice Erzebeth

總結

以上是生活随笔為你收集整理的C#教程7:数组的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。