C# 數(shù)組實(shí)例介紹(圖文)
數(shù)組即是一組相同類型組合在一起,使用一個(gè)通用的名稱,通過(guò)分配的下標(biāo)訪問(wèn)的數(shù)據(jù)集合中的元素。
數(shù)組是具有相同類型的一組數(shù)據(jù)。當(dāng)訪問(wèn)數(shù)組中的數(shù)據(jù)時(shí),可以通過(guò)下標(biāo)來(lái)指明。c#中數(shù)組元素可以為任何數(shù)據(jù)類型,數(shù)組下標(biāo)從0開始,即第一個(gè)元素對(duì)應(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ù)組后,需要對(duì)數(shù)組實(shí)例化:
anArray = new int [2,4] ;
anArrayOfStrings = new stirng [2,4] ;
我們也可以用給定的值對(duì)數(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#語(yǔ)言中,數(shù)組為我們提供了一些有用的特性,利用這些特性,我們可以完成一些更高級(jí)的功能。
數(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語(yǔ)句針對(duì)數(shù)組或集合中的每一個(gè)元素,循環(huán)運(yùn)行嵌入語(yǔ)句。
foreach語(yǔ)句的語(yǔ)法格式為:
foreach (數(shù)據(jù)類型 標(biāo)識(shí)符 in 表達(dá)式)
嵌入語(yǔ)句
//包含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#"};
//一維對(duì)象數(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];
下面來(lái)看一個(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#
下面來(lái)看一個(gè)4行2列(4*2)的整型數(shù)組的遍歷:
using System;
public class MikeCat
{
static void PrintArray(int[,] arr)
{
//通過(guò)兩次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)。簡(jiǎn)單的c語(yǔ)法,這里做簡(jiǎn)單介紹供初學(xué)者學(xué)習(xí)。(詳細(xì)可參閱《c# 高級(jí)編程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,因此可以對(duì) C# 中的所有數(shù)組使用 foreach 迭代。
我對(duì)數(shù)組的理解:在 C# 中,數(shù)組實(shí)際上是對(duì)象,而不只是像 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 語(yǔ)句。該語(yǔ)句提供一種簡(jiǎn)單、明了的方法來(lái)循環(huán)訪問(wè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#泛型序列化對(duì)象為字節(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)文章
C#面向?qū)ο笾M實(shí)現(xiàn)商城購(gòu)物功能
這篇文章主要為大家詳細(xì)介紹了C#面向?qū)ο笾M實(shí)現(xiàn)商城購(gòu)物功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
C#實(shí)現(xiàn)將網(wǎng)頁(yè)保存成圖片的網(wǎng)頁(yè)拍照功能
這篇文章主要介紹了C#實(shí)現(xiàn)將網(wǎng)頁(yè)保存成圖片的網(wǎng)頁(yè)拍照功能,很實(shí)用的一個(gè)功能,需要的朋友可以參考下2014-07-07
C# WPF上位機(jī)實(shí)現(xiàn)和下位機(jī)TCP通訊的方法
這篇文章主要介紹了C# WPF上位機(jī)實(shí)現(xiàn)和下位機(jī)TCP通訊的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03
在Framework 4.0中:找出新增的方法與新增的類(一)
經(jīng)??吹接型瑢W(xué)在討論Framework 4 的新特性,新方法,于是想寫個(gè)程序找出framework4.0中新增的方法和類2013-05-05
WPF+SkiaSharp實(shí)現(xiàn)自繪投籃小游戲
這篇文章主要介紹了如何利用WPF+SkiaSharp實(shí)現(xiàn)自繪投籃小游戲。此案例主要是針對(duì)光線投影法碰撞檢測(cè)功能的示例,順便做成了一個(gè)小游戲,很簡(jiǎn)單,但是,效果卻很不錯(cuò),感興趣的可以動(dòng)手嘗試一下2022-08-08
c#語(yǔ)言使用Unity粒子系統(tǒng)制作手雷爆炸
這篇文章主要為大家介紹了Unity的粒子系統(tǒng)由粒子發(fā)射器、粒子動(dòng)畫器、粒子渲染器組成,通過(guò)使用一或兩個(gè)紋理多次繪制,創(chuàng)造一個(gè)混沌的效果,通過(guò)復(fù)習(xí)粒子系統(tǒng)做一個(gè)手雷和實(shí)彈投擲現(xiàn)場(chǎng)2022-04-04

