數據結構是計算機存儲、組織數據的方式。是指相互之間存在一種或多種特定關系的數據元素的集合,即帶“結構”的數據元素的集合。“結構”就是指數據元素之間存在的關系,分為邏輯結構和存儲結構。邏輯結構:指數據元素之間的前后關系。包括集合(同屬一個集合)、線性結構(一對一的相互關系)、樹形結構(一對多的相互關系)、圖形結構(多對多的相互關系)。
存儲結構:數據在計算機存儲空間中的存放形式。常用的存儲結構有順序存儲、鏈式存儲、索引存儲和哈希存儲等。
字符串
字符串是值為文本的 String 類型對象。文本在內部存儲為 Char 對象的依序只讀集合。String是引用類型,且使用頻率非常高的引用類型。
字符串的一些示例:
// 聲明字符串變量并賦值
string content = "C#語言基礎";
// 聲明字符串變量并賦值為null,若訪問則會導致異常
string nullContent = null;
//聲明字符串變量并賦值為空字符串,長度為零
string emptyContent = string.Empty;
//聲明字符串變量并賦值為空字符串,長度為零
string emptContent = "";
屬性與常用方法
數組
數組是將同一類型的多個變量存儲在一個數組數據結構中。通過指定的索引來訪問數組的元素。數組從零開始建立索引,即數組索引從零開始。數組包括一維數組、多維數組和交錯數組。2、交錯數組是數組數組,每個成員數組的默認值為null。3、數組從零開始編制索引,包含 n 元素的數組從 0 索引到 n-1。5、數組類型是從抽象的基類型 Array 派生的引用類型。// 聲明一個由5個整數組成的一維數組
int[] singleArray = new int[5];
// 聲明和設置數組元素值
int[] setSingleArray = [1, 2, 3, 4, 5, 6];
// 聲明一個二維數組
int[,] multiDimensionalArray = new int[2, 3];
// 聲明和設置二維數組元素值
int[,] setMultiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };
// 聲明一個交錯數組
int[][] jaggedArray = new int[6][];
// 設置交錯數組結構中第一個數組的值。
jaggedArray[0] = [1, 2, 3, 4];
// 訪問元素
for (int i = 0; i < setSingleArray.Length; i++)
{
Console.WriteLine(list[i]);
}
一維數組:是一系列相似元素。可以通過其索引訪問元素。索引是序列中的順序位置,數組中的第一個元素位于索引0。
多維數組:具有多個維度。對于多維數組,遍歷元素的方式為:首先遞增最右邊維度的索引,然后是它左邊的一個維度,以此類推,向最左的索引遍歷元素。
交錯數組:是一個數組,其元素是數組,大小可能不同。交錯數組有時稱為“數組的數組”。
集合
集合與數組比較類似,都用于存放一組值,但集合中提供了特定的方法能直接操作集合中的數據,并提供了不同的集合類來實現特定的功能。集合可以動態的對集合的長度進行定義和維護。所有集合類或與集合相關的接口命名空間都是 System.Collection。可索引集合:是一個可以使用其索引訪問每個元素的集合。其索引是序列中在它之前的元素數。// 聲明一個集合
List<string> fruits = ["apple", "pear", "peach", "strawberry"];
// 循環訪問每個元素
foreach (var fruit in fruits){
Console.Write(fruit + " ");
}
鍵值對集合: 使用字典集合,可通過使用每個元素的鍵訪問集合中的元素。每次對字典的添加都包含一個值和與其關聯的鍵。// 聲明一個字典集合變量
Dictionary<string, string> elements = new Dictionary<string, string>();
elements.Add("A", "90");
elements.Add("B", "80");
elements.Add("C", "70");
// 循環訪問每個鍵值
foreach (string element in elements.Keys){
Console.WriteLine("key: " + element);
Console.WriteLine("values: " + elements[element]);
}
泛型
泛型是為所存儲或使用的一個或多個類型具有占位符(類型形參)的類、結構、接口和方法。泛型集合類可以將類型形參用作其存儲的對象類型的占位符;類型形參呈現為其字段的類型和其方法的參數類型。泛型方法可將其類型形參用作其返回值的類型或用作其形參之一的類型。
// 定義泛型類
public class GenClass<T>
{
// 定義泛型屬性
public T Genname { get; set; }
}
public class A
{
// 定義泛型方法
public T Go<T>(T arg)
{
T temp = arg;
// 返回
return temp;
}
}
// 調用
GenClass<string> gString = new GenClass<string>();
gString.Genname = "A string";
GenClass<int> gInt = new GenClass<int>();
gInt.Genname = 12;
術語
1、泛型類型定義是用作模板的類、結構或接口聲明,帶有可包含或使用的類型的占位符。
2、泛型類型參數(或類型參數)是泛型類型或方法定義中的占位符。
3、構造泛型類型(或 構造類型)是為泛型類型定義的泛型類型形參指定類型的結果。
4、泛型類型實參是被泛型類型形參所替代的任何類型。
優點
1、類型安全,泛型將類型安全的負擔從你那里轉移到編譯器。
2、性能更好,無需對值類型進行裝箱。
3、簡化動態生成代碼。
4、代碼更少且可以更輕松地重用代碼
缺點
1、不支持上下文綁定的泛型類型。
2、枚舉不能具有泛型類型形參。
3、輕量動態方法不能是泛型。
***后續將對泛型詳解介紹***
小結
以上對C#常用的字符串、數組、集合、泛型數據結構類型進行了介紹,希望對大家的學習C#基礎知識有一定的參考借鑒價值。
該文章在 2024/3/26 18:56:09 編輯過