由於 C# 是強類型語言,與 JavaScript 不同,
不能像 JavaScript 那樣使用 const number = [] 來宣告變數。
在 C# 中,必須明確指定變數的類型。
例如,陣列應該寫成 int[] number = {5, 4, 3, 2, 1};。
此外,const 在 C# 中只能用來定義編譯時的常量,
不能用來定義陣列或其他引用類型,
而 JavaScript 則允許使用 const 來定義陣列和物件。
陣列由陣列元素組成
-將同類資料放在同一個記憶體中,節省命名的步驟
-透過索引值取得存在記憶體的資訊
宣告一維陣列
變數與陣列的差異,一個變數只能儲存一個資料
陣列能把相同資料集合在一起,稱為陣列元素
產生完整陣列步驟:
1.宣告陣列變數
int[] grade;
int => 告知編譯器要使用的資料型態,取得記憶體空間
[] =>陣列維度,當有一個逗後在方框內時,則為二維陣列,以此類推。
grade =>為陣列名稱
2.配置記憶體
陣列宣告後不代表有記憶體空間,必須以new運算子完成實體化程序,取得記憶體空間
grade = new int[4];
grade =>為陣列名稱
new =>完成實體化程序
int =>資料型別
[4] =>陣列長度
合併1+2寫法
int[] grede = new int[4];
3.設定陣列初始值
grade[2] = 34;
陣列名稱[索引編號] = 初始值;
最終寫法1+2+3
int[] grede = new int[] {78,65,92,85};
資料型別[] 陣列名稱 = new 資料型別[size];
在 C# 中,$ 字符串插值是一種方便的方式來將變數或表達式嵌入到字符串中。當前面的 " 使用了 $ 開頭時,可以在字符串內直接使用 {} 包裹變數或表達式,這樣就不需要再使用 + 號來拼接字符串和變數,讓代碼更簡潔且易讀。
使用 + 來拼接字符串和變數:
Console.WriteLine("grade [" + item + "]=" + grade[item]);
foreach練習:
using System;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
int[] grade;
grade = new int[] {78,65,92,85};
int index = 0; //索引值
//foreach (資料型別 物件變數 in 集合)
foreach (int item in grade) {
//程式區段敘述
System.Console.WriteLine($"{index}-{item}");
index++;
}
}
}
}
string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
foreach (string i in cars)
{
Console.WriteLine(i);
}
for迴圈練習:
using System;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
int[] grade;
grade = new int[] {78,65,92,85};
int index = 0; //索引值
//foreach (資料型別 物件變數 in 集合)
foreach (int item in grade) {
//程式區段敘述
System.Console.WriteLine($"{index}-{item}");
index++;
}
for (int item = 0; item < grade.length; item++)
{
Console.WriteLine($"grade [{item}]={}grade[item]")
}
}
}
}
排序與搜尋練習:
using System;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
//宣告陣列且有值
int[] number = {56,78,9,354};
Console.Write("排序前:");
foreach (int element in number)
Console.Write($" {element,3}");
Array.Sort(number); //遞增排序
Console.Write("\n排序後:");
for (int item = 0; item < number.Length; item++)
Console.Write($" {number[item],3}");
// Array.Reverse(number); //遞減排序
}
}
}
//foreach 迴圈時讀取陣列元素,只要設定物件變數[element]再做輸出即可
//for 迴圈讀取元素後,得有陣列名稱並在括號裡放入所引來輸出
Sort()方法處理兩個欄位:
using System;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
//宣告陣列且有值
int[] number = {56,78,3,354};
string[] name = {"Mary","Judy","Tomas","Molly"};
Console.Write("\n排序前:\n");
foreach (int element in number)
Console.Write($" {element,3}");
Console.WriteLine();
foreach (string nameList in name)
Console.Write($" {nameList,3}");
Array.Sort(number,name);//遞增排序
Console.Write("\n排序後:\n");
for (int item1 = 0;item1 < number.Length; item1++)
Console.Write("{0,6} ", number[item1]);
Console.WriteLine();
for (int item2 = 0; item2 < name.Length; item2++)
Console.Write("{0,6} ", name[item2]);
Console.WriteLine();
}
}
}
IndexOf()方法搜尋陣列元素
using System;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
//先以IndexOf()方法找出age陣列中符合26歲年齡的索引編號,再利用while迴圈尋找陣列中下一個年齡的人員
//宣告陣列且有值
string[] name = {"Molly","Effie","John","Iron"};
int[] age = {25,26,26,27,30};
int index = Array.IndexOf(age,26);
Console.WriteLine("符合26歲的人:");
while (index >=0){
Console.Write($"{name[index], 6} ");
//繼續下一筆找
index = Array.IndexOf(age,26,index+1);
}
}
}
}
以上來源:從零開始學visual C# 2017程式設計、W3Schools、詢問chatGPT
內容有誤的話,請留言或發訊息給我