前言
數組作為一種數據結構,常用在存儲同一類型的多個對象中。而C#在使用數組時,通過中括號[] 這一特殊的記號來聲明,初始化和使用數組。Array 類是所有數組的基類,并且提供了創建、操作、搜索和排序數組的功能。本文了解如何使用 Array 類方法對數組進行搜索、排序和執行其他操作。
Array 類
Array 類是所有數組的基類,它是一個抽象基類,這也意味著無法使用Array類創建實例。它處在System命名空間中。
1、常用屬性
屬性 | 描述 |
---|
IsFixedSize | 返回一個數組是否具有固定大小的值。 |
IsReadOnly | 返回一個數組是否為只讀數組的值。 |
LongLength | 返回一個64位整數的數組維度中的元素總數。 |
Length | 返回一個32位整數的數組維度中的元素總數。 |
Rank | 返回數組的維數。 |
2、創建數組
Array 類提供用于構造數組的 CreateInstance 方法。CreateInstance 方法將第一個參數作為項目的類型,第二個和第三個參數是維度及其范圍。創建數組后,我們使用 SetValue 方法添加項。
// 創建一維數組
Array expressArray = Array.CreateInstance(typeof(String), 3);
expressArray.SetValue("SF", 0);
expressArray.SetValue("JD", 1);
expressArray.SetValue("ZTO",2);
3、搜索數組
Array 類的 BinarySearch 方法可用于搜索數組中的元素。此方法不支持搜索包含負索引,因此使用此方法之前,必須先排序數組。
string[] platformArray = new string[4] { "JD", "TM", "TB", "PDD" };
Array.Sort(platformArray);
int searchIndex = Array.BinarySearch(platformArray, "PDD");
if (searchIndex >= 0)
{
Console.WriteLine($"元素位于數組的第{searchIndex}個位置");
}
else
{
Console.WriteLine("數組未找到元素");
}
Array 類的IndexOf方法可用于來搜索數組中的元素。
string[] platformArray = new string[4] {"TB","TM","JD","PDD"}
int searchIndex = Array.IndexOf(platformArray, "JD");
if (searchIndex >= 0)
{
Console.WriteLine($"元素位于數組的第{searchIndex}個位置");
}
else
{
Console.WriteLine("數組未找到元素");
}
4、排序數組
Array 類的Sort方法可用于對數組項進行排序。
string[] platformArray = new string[4] { "JD", "TM", "TB", "PDD" };
Array.Sort(platformArray);
foreach (string item in platformArray)
{
Console.WriteLine(item);
}
5、獲取和設置值
Array 類的 GetValue 和 SetValue 方法可用于獲取和設置數組項的值。
Array platformArrayx = Array.CreateInstance(typeof(String), 2, 4);
platformArrayx.SetValue("TB", 0, 0);
platformArrayx.SetValue("淘寶", 0, 1);
platformArrayx.SetValue("JD", 0, 2);
platformArrayx.SetValue("京東", 0, 3);
platformArrayx.SetValue("TM", 1, 0);
platformArrayx.SetValue("天貓", 1, 1);
platformArrayx.SetValue("PDD", 1, 2);
platformArrayx.SetValue("拼多多", 1, 3);
for (int i = 0; i < platformArrayx.GetLength(0); i++)
{
for (int j = 0; j < platformArrayx.GetLength(1); j++)
{
Console.WriteLine($"{i.ToString()},{j.ToString()}: {platformArrayx.GetValue(i, j)}");
}
}
6、反轉數組
Array 類的 Reverse 靜態方法反轉數組中項的順序。
Array.Reverse(platformArray);
foreach (string item in platformArray)
{
Console.WriteLine(item);
}
7、清除數組
Array 類的 Clear 方法刪除數組的所有項并將其長度設置為零。不會刪除項目。只需清除項目的值。
Array.Clear(platformArray, 1, 2);
foreach (string item in platformArray)
{
Console.WriteLine(item);
}
8、復制數組
Array 類 Copy 方法將數組的一部分復制到另一個數組。
string[] platformArray = new string[4] { "JD", "TM", "TB", "PDD" };
string[] copyArray = new string[platformArray.Length];
Array.Copy(platformArray, copyArray, platformArray.Length);
9、克隆數組
Array 類 Clone 方法創建數組的淺表副本。新數組中的引用指向與原始數組中的對象相同的對象。數組的淺表副本僅復制數組的元素,無論是引用類型還是值類型,但它不會復制引用引用的對象。string[] clonedArray = (string[])platformArray.Clone();
10、獲取數組的大小
GetLength 方法返回數組總大小。GetLowerBound 和 GetUppperBound 方法分別返回數組的下限和上限。
Console.WriteLine(platformArray.GetLength(0).ToString());
Console.WriteLine(platformArray.GetLowerBound(0).ToString());
Console.WriteLine(platformArray.GetUpperBound(0).ToString());
// 數組轉集合
List<string> list = new List<string>(platformArray);
// 集合轉數組
string[] anotherArray = list.ToArray();
12、數組填充
Array 類Fill方法可以填充數組。
int[] numbers = new int[5];
Array.Fill(numbers, 0);
13、數組拼接
使用Array類的Copy方法可以將二個數組進行拼接。
// 第一個數組
string[] platformArray = new string[4] { "JD", "TM", "TB", "PDD" };
// 第二個數組
string[] expressArray = { "JD", "SF", "JT", "ZTO", "YTO" };
// 拼接后數組
string[] concatArray = new string[platformArray.Length+expressArray.Length];
// 將第一個數組復制到拼接后數組
Array.Copy(platformArray, 0, concatArray, 0, platformArray.Length);
// 將第二個數組復制到拼接后數組
Array.Copy(expressArray, 0, concatArray, platformArray.Length, expressArray.Length);
小結
以上是通過Array類實現數組的常見操作,希望本文對您有所收獲,如有不到之處,請多多包涵。
該文章在 2025/1/2 9:03:24 編輯過