C# 數(shù)組實(shí)例介紹(圖文)
數(shù)組即是一組相同類型組合在一起,使用一個(gè)通用的名稱,通過分配的下標(biāo)訪問的數(shù)據(jù)集合中的元素。
數(shù)組是具有相同類型的一組數(shù)據(jù)。當(dāng)訪問數(shù)組中的數(shù)據(jù)時(shí),可以通過下標(biāo)來指明。c#中數(shù)組元素可以為任何數(shù)據(jù)類型,數(shù)組下標(biāo)從0開始,即第一個(gè)元素對應(yīng)的下標(biāo)為0,以后逐個(gè)遞增。數(shù)組可以一維也可多維。
一維數(shù)組是最基本的數(shù)組類型,其聲明方法如下:
數(shù)據(jù)類型 [ ] 數(shù)組名 ;
舉例:
int [ ] anArray ; // 聲明一個(gè)整型的一維數(shù)組
具有兩個(gè)維度的數(shù)組是二維數(shù)組,其聲明方法如下:
數(shù)據(jù)類型 [ , ] 數(shù)組名 ;
舉例:
int [ , ] anArray ; // 聲明一個(gè)整型的二維數(shù)組
float [ , ]anArrayOfFloats; // 聲明一個(gè)浮點(diǎn)型的二維數(shù)組
string [ , ] anArrayOfStrings; // 聲明一個(gè)字符串型的二維數(shù)組
聲明數(shù)組變量時(shí),還沒有創(chuàng)建數(shù)組,還沒有為數(shù)組中元素分配任何內(nèi)存空間,因此,聲明數(shù)組后,需要對數(shù)組實(shí)例化:
anArray = new int [2,4] ;
anArrayOfStrings = new stirng [2,4] ;
我們也可以用給定的值對數(shù)組元素進(jìn)行初始化。
int [, ] anArray = new int [2, 4] {{1,2,3,4},{5,6,7,8}};
string [, ] anArrayOfStrings = new string [2, 2] {{"某甲","某乙"}, {"冠軍" ,"亞軍" }};
也可使用下列快捷方式:
int [, ] anArray = {{0,1,2,3},{1,2,3,4}};
string [, ] anArrayOfStrings = {{"某甲","某乙"}, {"冠軍" ,"亞軍" }};
在C#語言中,數(shù)組為我們提供了一些有用的特性,利用這些特性,我們可以完成一些更高級的功能。
數(shù)組名.Length :返回一個(gè)整數(shù),該整數(shù)表示該數(shù)組的所有維數(shù)中元素的總數(shù)。
數(shù)組名.Rank :返回一個(gè)整數(shù),該整數(shù)表示該數(shù)組的維數(shù)。
數(shù)組名.GetLength(int dimension) :返回一個(gè)整數(shù),該整數(shù)表示該數(shù)組的指定維(由參數(shù)dimension指定,維度從零開始)中的元素個(gè)數(shù)。
4.foreach語句針對數(shù)組或集合中的每一個(gè)元素,循環(huán)運(yùn)行嵌入語句。
foreach語句的語法格式為:
foreach (數(shù)據(jù)類型 標(biāo)識(shí)符 in 表達(dá)式)
嵌入語句
//包含6個(gè)元素的一維整數(shù)數(shù)組;
int[] mf1=new int[6]; //注意初始化數(shù)組的范圍,或者指定初值;
//包含6個(gè)元素的一維整數(shù)數(shù)組,初值1,2,3,4,5,6
int[] mf2=new int[6]{1,2,3,4,5,6};
//一維字符串?dāng)?shù)組,如果提供了初始值設(shè)定項(xiàng),則還可以省略 new 運(yùn)算符
string[] mf3={"c","c++","c#"};
//一維對象數(shù)組
Object[] mf4 = new Object[5] { 26, 27, 28, 29, 30 };
//二維整數(shù)數(shù)組,初值mf5[0,0]=1,mf5[0,1]=2,mf5[1,0]=3,mf5[1,1]=4
int[,] mf5=new int[,]{{1,2},{3,4}};
//6*6的二維整型數(shù)組
int[,] mf6=new mf[6,6];
下面來看一個(gè)一維字符串?dāng)?shù)組的遍歷
using System; public class MikeCat { static void PrintArray(string[] arr) { //打印數(shù)組元素,arr.Length 表示數(shù)組元素的個(gè)數(shù) for(int i=0;i<arr.Length;i++) { Console.WriteLine("arr[{0}]={1}",i,arr[i]); } } public static void Main() { string[] arr={"c","c++","c#"}; //將數(shù)組作為一個(gè)參數(shù)傳遞 PrintArray(arr); } }
程序結(jié)果:arr[0]=c arr[1]=c++ arr[2]=c#
下面來看一個(gè)4行2列(4*2)的整型數(shù)組的遍歷:
using System; public class MikeCat { static void PrintArray(int[,] arr) { //通過兩次FOR循環(huán)遍歷二維數(shù)組 for(int i=0;i<4;i++)//初始化i作為循環(huán)變量,i++實(shí)現(xiàn)該變量的自增運(yùn)算。 //for循環(huán)滿足條件后執(zhí)行完循環(huán)體一次后執(zhí)行i++,然后進(jìn)入下次循環(huán)。簡單的c語法,這里做簡單介紹供初學(xué)者學(xué)習(xí)。(詳細(xì)可參閱《c# 高級編程4.0》一書) { for(int j=0;j<2;j++) { Console.WriteLine("arr[{0},{1}]={2}",i,j,arr[i,j]);//打印每個(gè)二維數(shù)組元素 } } } public static void Main() { //主函數(shù) //將數(shù)組作為一個(gè)參數(shù)傳遞 PrintArray(new int[,]{{1,2},{3,4},{5,6},{7,8}}; } }
運(yùn)行結(jié)果:arr[0,0]=1 arr[0,1]=2 arr[1,0]=3 arr[1,1]=4 arr[2,0]=5 arr[2,1]=6 arr[3,0]=7 arr[3,1]=8
數(shù)組的屬性:
•數(shù)組可以是一維、多維或交錯(cuò)的。
•數(shù)值數(shù)組元素的默認(rèn)值設(shè)置為零,而引用元素的默認(rèn)值設(shè)置為 null。
•交錯(cuò)數(shù)組是數(shù)組的數(shù)組,因此,它的元素是引用類型,初始化為 null。
•數(shù)組的索引從零開始:具有 n 個(gè)元素的數(shù)組的索引是從 0 到 n-1。
•數(shù)組元素可以是任何類型,包括數(shù)組類型。
•數(shù)組類型是從抽象基類型 Array 派生的引用類型。由于此類型實(shí)現(xiàn)了 IEnumerable 和 IEnumerable,因此可以對 C# 中的所有數(shù)組使用 foreach 迭代。
我對數(shù)組的理解:在 C# 中,數(shù)組實(shí)際上是對象,而不只是像 C 和 C++ 中那樣的可尋址連續(xù)內(nèi)存區(qū)域
一維數(shù)組 :一維數(shù)組以線性方式存儲(chǔ)固定數(shù)目的項(xiàng),只需一個(gè)索引值即可標(biāo)識(shí)任意一個(gè)項(xiàng)。
一維數(shù)組實(shí)例:
static class Program { static void Main() { //一維數(shù)組 int[] arry = new int[9] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; arry[0] = 2;//第一行為2 Console.WriteLine(arry); } }
運(yùn)行結(jié)果截圖
二維數(shù)組實(shí)例
//二維數(shù)組 int[,] arry2 = new int[2, 3] { { 1, 2, 3 }, { 4, 5, 6 } }; arry2[1, 0] = 5;//改變第二列的第一行為5 for (int i = 0; i < arry2.GetLength(1); i++) { for (int y = 0; y < arry2.GetLength(1); y++)//第一個(gè)for循環(huán)遍歷二維數(shù)組的列,第二個(gè)for循環(huán)遍歷二維數(shù)組的行 { Console.Write(arry2[i, y]); } }
運(yùn)行結(jié)果截圖
交錯(cuò)數(shù)組實(shí)例
//交錯(cuò)數(shù)組 int[][] arry3 = new int[3][];//交錯(cuò)數(shù)組必須指定下標(biāo)的個(gè)數(shù) arry3[0] = new int[] { 0, 1, 2, 4 }; arry3[1] = new int[] { 3, 4, 5, 6 }; arry3[2] = new int[] { 4, 8, 9 }; for (int x = 0; x < arry3.Length; x++) { for (int z = 0; z < arry3[x].Length; z++) { Console.Write(arry3[x][z]); } Console.WriteLine();//以inti的數(shù)組元素為準(zhǔn)進(jìn)行換行. }
運(yùn)行結(jié)果截圖
C# 還提供 foreach 語句。該語句提供一種簡單、明了的方法來循環(huán)訪問數(shù)組的元素,看下面實(shí)例。
static void Main() { int [] arry4=new int[100]; foreach (int a in arry) { Console.Write(arry); } }
運(yùn)行結(jié)果截圖
源代碼下載地址:ArrayModel(jb51.net).rar
- C#4.0新特性之協(xié)變與逆變實(shí)例分析
- C#遞歸實(shí)現(xiàn)將一整數(shù)逆序后放入一數(shù)組中
- C#和Java中二維數(shù)組區(qū)別分析
- C#各種數(shù)組的用法實(shí)例演示
- c#泛型序列化對象為字節(jié)數(shù)組的示例
- c#獲取數(shù)組中最大數(shù)的值
- c#基礎(chǔ)之?dāng)?shù)組與接口使用示例(遍歷數(shù)組 二維數(shù)組)
- C# byte數(shù)組與Image相互轉(zhuǎn)換的方法
- C#的鋸齒數(shù)組以及C++實(shí)現(xiàn)代碼
- C# 泛型數(shù)組學(xué)習(xí)小結(jié)
- c#協(xié)變和逆變實(shí)例分析
相關(guān)文章
WPF利用RichTextBox實(shí)現(xiàn)富文本編輯器
在實(shí)際應(yīng)用中,富文本隨處可見,那么在WPF開發(fā)中,如何實(shí)現(xiàn)富文本編輯呢?本文以一個(gè)簡單的小例子,簡述如何通過RichTextBox實(shí)現(xiàn)富文本編輯功能,需要的可以參考下2024-02-02Unity 實(shí)現(xiàn)框選游戲戰(zhàn)斗單位的思路詳解
這篇文章主要介紹了Unity 如何實(shí)現(xiàn)框選游戲戰(zhàn)斗單位,本文簡單介紹如何實(shí)現(xiàn)即時(shí)戰(zhàn)略游戲中框選戰(zhàn)斗單位的功能,需要的朋友可以參考下2022-12-12C#模擬MSN窗體抖動(dòng)的實(shí)現(xiàn)代碼
這篇文章主要介紹了C#模擬MSN窗體抖動(dòng)的實(shí)現(xiàn)代碼,非常實(shí)用的一個(gè)功能,需要的朋友可以參考下2014-08-08