欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#常用數(shù)據(jù)結(jié)構(gòu)之數(shù)組Array

 更新時間:2022年05月09日 16:22:13   作者:springsnow  
這篇文章介紹了C#常用數(shù)據(jù)結(jié)構(gòu)之數(shù)組Array,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、概述

數(shù)組為引用類型,其中的元素固定。 定義后不能增加刪除元素。(如果事先不知道應(yīng)包含多少元素,則應(yīng)使用List集合)。數(shù)組可以包含同一類型的多個元素。

數(shù)組實現(xiàn)了IEumerable,ICollection,IList接口的部分功能。

二、聲明數(shù)組變量及使用

1、一維數(shù)組:[]

聲明及初始化:

int[] arr1 = new int[5];//聲明帶5個元素的數(shù)組
//或者
int[] arr2 = new int[] { 1, 3, 5, 7, 9 };
//或者
int[] arr3 = { 1, 3, 5, 7, 9 };

數(shù)組元素為引用類型:

Person[] arrPerson = new Person[2];
arrPerson[0] = new Person {"a","af"};
Person[] arrPerson2 = {new Person {"a","af"},new Person {"c","cf"}}

訪問數(shù)組元素,為數(shù)組元素賦值:

int a = arr1[0];//整數(shù)索引。
arr1[3] = 7;

遍歷

for (int i = 0; i < arr1.Length; i++)
{
    Console.WriteLine(i + "," + arr1[i]);
}
//或者
foreach (int item in arr2)
{
    Console.WriteLine(item);
}

2、二維數(shù)組:[,]

聲明及初始化:

int[,] arr1 = new int[2, 3];//兩行三列
int[,] arr2 = { { 1, 2, 3 }, { 4, 5, 6 } };

訪問數(shù)組元素,為數(shù)組元素賦值:

arr1[0, 2] = 25;//為數(shù)組的第一行第三列元素賦值為25

遍歷:

for (int i = 0; i < arr1.GetLength(0); i++)
{
    for (int j = 0; j < arr1.GetLength(1); j++)
    {
        Console.WriteLine(i + "," + j + "," + arr1[i, j]);
    }
}

3、鋸齒數(shù)組:[][]

每一行的元素個數(shù)可以不一樣,數(shù)組的數(shù)組。

聲明及初始化:

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

訪問數(shù)組元素,為數(shù)組元素賦值:

arr1[0] = new int[] { 1, 2 };
arr1[1] = new int[] { 3, 4, 5 };

遍歷:

for (int i = 0; i < arr1.Length; i++)
{
    for (int j = 0; j < arr1[i].Length; j++)
    {
        Console.WriteLine(i + "," + j + "," + arr1[i][j]);
    }
}

三、Array類

Arrary類為抽象類,用括號[]聲明是C#中使用Array類的簡寫形式。

Array array = Array.CreateInstance(typeof(int), 5);//相當于 int[] array=new int[5];
for (int i = 0; i < 5; i++)
{
    array.SetValue(33, i);
}
for (int i = 0; i < 5; i++)
{
    Console.WriteLine(array.GetValue(i));
}

Arrary類實現(xiàn)了以下接口:

  • IEumerable:使用foreach語句遍歷,必須實現(xiàn)此接口。
  • ICollection:IEumerable
  • IList:ICollection
  • ICloneable

四、Array類的成員

  • Length : 獲取 Array 的所有維度中的元素總數(shù)。
  • Rank: 獲取 Array 的秩(維數(shù))。 例如,一維數(shù)組返回 1,二維數(shù)組返回 2,依次類推。
  • GetLength(Int32): 獲取一個 32 位整數(shù),該整數(shù)表示 Array 的指定維中的元素數(shù)。
  • GetLowerBound(Int32) : 獲取數(shù)組中指定維度第一個元素的索引。
  • GetUpperBound(Int32): 獲取數(shù)組中指定維度最后一個元素的索引。

五、Array類的靜態(tài)方法

1、Array.Sort 排序

1、使用 Array 中每個元素的 IComparable 實現(xiàn),對一維 Array 中的部分元素進行排序。

public static void Sort (Array array, int index, int length);

實例:

void Main()
{
    Person[] ArrPerson = { new Person("ab", "bb"), new Person("ca", "ab") };
    Array.Sort(ArrPerson);
    foreach (Person p in ArrPerson)
    {
        Console.WriteLine(p);
    }
}

public class Person : IComparable
{
    public string FirstName;
    public string LastName;
    public Person(string firstName, string lastName)
    {
        this.FirstName = firstName;
        this.LastName = lastName;
    }
    public int CompareTo(object obj)
    {
        Person other = obj as Person;
        int result = this.LastName.CompareTo(other.LastName);//如果實例應(yīng)排在參數(shù)對象前面,返回負數(shù);如果實例應(yīng)排在參數(shù)對象后面,返回整數(shù);如果實例與參數(shù)對象相等,返回0;
        if (result == 0)
        { result = this.FirstName.CompareTo(other.FirstName); }
        return result;
    }
}

2、使用指定的 IComparer,對一維 Array 中的部分元素進行排序。

comparer:比較元素時要使用的 IComparer 實現(xiàn)?;?若為 null,則使用每個元素的 IComparable 實現(xiàn)。

public static void Sort (Array array, int index, int length, System.Collections.IComparer comparer);

實例:

void Main()
{
    Person[] ArrPerson = { new Person("ab", "bb"), new Person("ca", "ab") };
    Array.Sort(ArrPerson, new PersonComparer());
    foreach (Person p in ArrPerson)
    {
        Console.WriteLine(p);
    }
}
public class Person
{
    public string FirstName;
    public string LastName;
    public Person(string firstName, string lastName)
    {
        this.FirstName = firstName;
        this.LastName = lastName;
    }
}

public class PersonComparer : IComparer
{
    public int Compare(object x, object y)
    {
        Person p1 = x as Person;
        Person other = y as Person;
        int result = p1.LastName.CompareTo(other.LastName);
        if (result == 0)
        { result = p1.FirstName.CompareTo(other.FirstName); }
        return result;
    }
}

2、Array.Reverse(Array, Int32, Int32) 反轉(zhuǎn)

反轉(zhuǎn)一維 Array 中某部分元素的元素順序。

3、Array.IndexOf(Array, Object, Int32, Int32) 查找位置

在一個一維數(shù)組的一系列元素中搜索指定對象,然后返回其首個匹配項的索引。 該元素系列的范圍從指定數(shù)量的元素的指定索引開始。

4、Array.LastIndexOf(Array, Object, Int32, Int32)

搜索指定的對象并返回一維 Array 中包含指定數(shù)目元素且在指定索引處結(jié)尾的元素范圍內(nèi)的最后一個匹配項的索引。

5、Array.Clear(Array, Int32, Int32) 清除元素的值

將數(shù)組中的某個范圍的元素設(shè)置為每個元素類型的默認值。元素個數(shù)不變

6、Array.Copy(Array, Int32, Array, Int32, Int32) 復(fù)制到一個已有數(shù)組

復(fù)制 Array 中的一系列元素(從指定的源索引開始),并將它們粘貼到另一 Array 中(從指定的目標索引開始)。 長度和索引指定為 32 位整數(shù)。

7、Array.Clone() 創(chuàng)建一個新數(shù)組

創(chuàng)建 Array 的淺表副本。

到此這篇關(guān)于C#常用數(shù)據(jù)結(jié)構(gòu)之數(shù)組Array的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • c# textbox的滾動條總是指向最底端的簡單解決方法

    c# textbox的滾動條總是指向最底端的簡單解決方法

    這篇文章主要介紹了c# textbox的滾動條總是指向最底端的簡單解決方法,需要的朋友可以參考下
    2017-11-11
  • C#中的委托和事件詳解

    C#中的委托和事件詳解

    本文詳細講解了C#中的委托和事件,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • 日常收集C#接口知識(知識全面)

    日常收集C#接口知識(知識全面)

    本文分為七章節(jié)給大家介紹c#接口知識,內(nèi)容比較詳細,特此分享腳本之家平臺,供大家參考
    2016-01-01
  • C#封裝的Sqlite訪問類實例

    C#封裝的Sqlite訪問類實例

    這篇文章主要介紹了C#封裝的Sqlite訪問類,實例分析了C#針對Sqlite數(shù)據(jù)庫各種常用操作的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • 使用快捷鍵在Unity中快速鎖定和解鎖Inspector右上角的鎖功能

    使用快捷鍵在Unity中快速鎖定和解鎖Inspector右上角的鎖功能

    這篇文章主要為大家介紹了使用快捷鍵在Unity中快速鎖定和解鎖Inspector右上角的鎖功能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • C#?WPF調(diào)用QT窗口的方法

    C#?WPF調(diào)用QT窗口的方法

    本文主要介紹了C#?WPF調(diào)用QT窗口的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • C#中的程序集和反射介紹

    C#中的程序集和反射介紹

    這篇文章主要介紹了C#中的程序集和反射介紹,程序集包含資源文件,類型元數(shù)據(jù)、IL代碼,每個程序集都有自己的名稱、版本等信息,反射就是動態(tài)獲取程序集中的元數(shù)據(jù)的功能,需要的朋友可以參考下
    2015-01-01
  • c#使用htmlagilitypack解析html格式字符串

    c#使用htmlagilitypack解析html格式字符串

    這篇文章主要介紹了c#使用htmlagilitypack解析html格式字符串的示例,需要的朋友可以參考下
    2014-03-03
  • C#利用GDI+給圖片添加文字(文字自適應(yīng)矩形區(qū)域)

    C#利用GDI+給圖片添加文字(文字自適應(yīng)矩形區(qū)域)

    這篇文章主要給大家介紹了關(guān)于C#利用GDI+給圖片添加文字(文字自適應(yīng)矩形區(qū)域)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2018-04-04
  • picturebox加載圖片的三種方法與網(wǎng)站驗證碼的抓取

    picturebox加載圖片的三種方法與網(wǎng)站驗證碼的抓取

    這篇文章主要介紹了picturebox加載圖片的三種方法與網(wǎng)站驗證碼的抓取,需要的朋友可以參考下
    2015-03-03

最新評論