無論哪種語言,肯定會(huì)有集合的概念。而最簡單,最直觀的集合應(yīng)該就是數(shù)組了,數(shù)組是在內(nèi)存中連續(xù)的一段空間??纯碈#中數(shù)組
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、團(tuán)風(fēng)ssl等。為千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的團(tuán)風(fēng)網(wǎng)站制作公司
的定義。
1、int[] intArry ;
intArry= new int[6];
這里聲明了一個(gè)int數(shù)組類型變量intArry,并保存一個(gè)具有6個(gè)單元的int數(shù)組對(duì)象;
int[,] intArry2 = new int[3, 4];
聲明一個(gè)int二維數(shù)組類型變量,并初始化一個(gè)3行4列的數(shù)組對(duì)象;
int[][] intArry3 = new int[9][];
聲明一個(gè)數(shù)組單元為int數(shù)組類型的數(shù)組變量,每個(gè)數(shù)組元素是一個(gè)int數(shù)組類型的對(duì)象引用。
因?yàn)槭敲嫦驅(qū)ο笳Z言,上面提到了引用和對(duì)象。其實(shí):
1、.net Frameword數(shù)組不是一種單純的數(shù)據(jù)結(jié)構(gòu),而是一個(gè)類型,叫數(shù)組類型;
2、.net Framework中的數(shù)組變量保存著引用到數(shù)組類型對(duì)象的引用,也就是說數(shù)組是一個(gè)對(duì)象。
所有.net Framework數(shù)組(int[],string[],object[])都是從Array繼承的子類。一般不直接使用Array類,因?yàn)?net Framework下
的各類語言,當(dāng)然也包括C#,將數(shù)組對(duì)象映射為各自的特殊語法了,比如int[],string[]。
數(shù)組主要有兩個(gè)各屬性:索引和長度,也就是index和length,索引用于訪問數(shù)組對(duì)象中的元素,長度也就是數(shù)組的長度。
看一段聯(lián)系代碼:
public class MyArray { ////// 定義數(shù)組測(cè)試 /// public void TestInt() { int[] intArry1 = null; intArry1 = new int[6]; int[,] intArry2 = new int[3, 4]; int[][] intArry3 = new int[9][]; } ////// 值類型數(shù)組轉(zhuǎn)引用類型數(shù)組測(cè)試 /// /// ///public static object[] Int32ToArrayOfObject(int[] array) { object[] objArray = new object[array.Length]; for (int i = 0; i < array.Length; i++) { objArray[i] = array[i]; } return objArray; } /// /// 數(shù)組的主要特性測(cè)試 /// public static void MainTest() { //聲明一個(gè)包含是個(gè)元素的字符串型數(shù)組 string[] sArray = new string[10]; //訪問數(shù)組 //賦值 for (int i = 0; i < sArray.Length; i++) { sArray[i] = @"string" + i; } ConsoleToClientString(sArray); //另一種方式聲明數(shù)組,所謂的枚舉法 sArray = new string[] { "TestString0", "TestString1", "TestString2" }; ConsoleToClientString(sArray); //數(shù)組復(fù)制 string[] newSArray = sArray.Clone() as string[]; ConsoleToClientString(newSArray); //使用Array的CreateInstance方法聲明10元素的×××數(shù)組 int[] intArray = Array.CreateInstance(typeof(int), 10) as int[]; for (int i = 0; i < intArray.Length; i++) { intArray[i] = i; } ConsoleToClientInt(intArray); //數(shù)組之間的復(fù)制,指定位置,指定長度 int[] newIntArray = new int[20]; Array.Copy(intArray, 3, newIntArray, 4, intArray.Length - 3); ConsoleToClientInt(newIntArray); object[] objArray = sArray; ConsoleToClientObject(objArray); objArray = Int32ToArrayOfObject(intArray); ConsoleToClientObject(objArray); //數(shù)組的數(shù)組 int[][] intArrayArray = new int[9][]; Console.WriteLine("數(shù)組長度:" + intArrayArray.Length); //賦值 for (int i = 1; i < 10; i++) { intArrayArray[i - 1] = new int[i]; for (int j = 1; j <= i; j++) { intArrayArray[i - 1][j - 1] = i * j; } } ConsoleToClientArrayArrayInt(intArrayArray); //二維數(shù)組 int[,] intArray2D = new int[9, 9]; Console.WriteLine(string.Format("二維數(shù)組 長度:{0},維數(shù):{1}*{2}", intArray2D.Length, intArray2D.GetLength(0), intArray2D.GetLength(1))); for (int i = 1; i < 10; i++) { for (int j = 1; j <= i; j++) { intArray2D[i - 1, j - 1] = i * j; } } int count = 0; foreach (int item in intArray2D) { if (item > 0) { Console.Write("{0,2}", item); } if (++count >= 9) { Console.WriteLine(); count = 0; } } } static void ConsoleToClientArrayArrayInt(int[][] intArrayArray) { foreach (int[] item1 in intArrayArray) { foreach (int item2 in item1) { Console.Write("{0,2}", item2); } Console.WriteLine(); } Console.WriteLine(); } static void ConsoleToClientString(string[] sArray) { foreach (string item in sArray) { Console.Write(item + @","); } Console.WriteLine(); } static void ConsoleToClientInt(int[] intArray) { foreach (int item in intArray) { Console.Write(item + @","); } Console.WriteLine(); } static void ConsoleToClientObject(object[] objArray) { foreach (object item in objArray) { Console.Write(item.ToString() + @","); } Console.WriteLine(); } }
調(diào)用
class Program { static void Main(string[] args) { MyArray.MainTest(); Console.ReadLine(); } }
結(jié)果
由上可以知道:
數(shù)組有引用類型數(shù)組和值類型數(shù)組,對(duì)于引用類型數(shù)組,元素用于保存對(duì)象的引用,初始化值為null;對(duì)于值類型數(shù)組,元素保存
對(duì)象的值,對(duì)于數(shù)字類型初始化值為0。
數(shù)組有維度,但是多維數(shù)組和數(shù)組的數(shù)組是不同的概念,intArrayArray和intArray2D是不同的。數(shù)組的數(shù)組表示一個(gè)m*n的行列式
,多維數(shù)組則是每個(gè)元素都是一個(gè)數(shù)組對(duì)象的數(shù)組。
數(shù)組和其他集合類一樣都是是實(shí)現(xiàn)了ICollection接口,都具有枚舉和迭代功能。
代碼下載:http://download.csdn.net/detail/yysyangyangyangshan/4640445