的定义。
1、int[] intArry ;
intArry= new int[6];
这里声清楚明了一个int数组范例变量intArry,并保留一个具有6个单位的int数组对象;
int[,] intArry2 = new int[3, 4];
声明一个int二维数组范例变量,并初始化一个3行4列的数组对象;
int[][] intArry3 = new int[9][];
声明一个数组单位为int数组范例的数组变量,每一个数组元素是一个int数组范例的对象援用。
由于是面向对象言语,上面提到了援用和对象。实在:
1、.net Frameword数组不是一种纯真的数据结构,而是一个范例,叫数组范例;
2、.net Framework中的数组变量保留着援用到数组范例对象的援用,也就是说数组是一个对象。
一切.net Framework数组(int[],string[],object[])都是从Array继续的子类。平常不直接运用Array类,由于.net Framework下
的各种言语,固然也包括C#,将数组对象映照为各自的特别语法了,比方int[],string[]。
数组重要有两个各属性:索引和长度,也就是index和length,索援用于接见数组对象中的元素,长度也就是数组的长度。
看一段联络代码:
public class MyArray { /// <summary> /// 定义数组测试 /// </summary> public void TestInt() { int[] intArry1 = null; intArry1 = new int[6]; int[,] intArry2 = new int[3, 4]; int[][] intArry3 = new int[9][]; } /// <summary> /// 值范例数组转援用范例数组测试 /// </summary> /// <param name="array"></param> /// <returns></returns> 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; } /// <summary> /// 数组的重要特征测试 /// </summary> public static void MainTest() { //声明一个包括是个元素的字符串型数组 string[] sArray = new string[10]; //接见数组 //赋值 for (int i = 0; i < sArray.Length; i++) { sArray[i] = @"string" + i; } ConsoleToClientString(sArray); //另一种体式格局声明数组,所谓的罗列法 sArray = new string[] { "TestString0", "TestString1", "TestString2" }; ConsoleToClientString(sArray); //数组复制 string[] newSArray = sArray.Clone() as string[]; ConsoleToClientString(newSArray); //运用Array的CreateInstance要领声明10元素的整形数组 int[] intArray = Array.CreateInstance(typeof(int), 10) as int[]; for (int i = 0; i < intArray.Length; i++) { intArray[i] = i; } ConsoleToClientInt(intArray); //数组之间的复制,指定位置,指定长度 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); //数组的数组 int[][] intArrayArray = new int[9][]; Console.WriteLine("数组长度:" + 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); //二维数组 int[,] intArray2D = new int[9, 9]; Console.WriteLine(string.Format("二维数组 长度:{0},维数:{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(); } }
挪用
class Program { static void Main(string[] args) { MyArray.MainTest(); Console.ReadLine(); } }
效果
由上能够晓得:
数组有援用范例数组和值范例数组,关于援用范例数组,元素用于保留对象的援用,初始化值为null;关于值范例数组,元素保留
对象的值,关于数字范例初始化值为0。
数组有维度,然则多维数组和数组的数组是差别的观点,intArrayArray和intArray2D是差别的。数组的数组示意一个m*n的行列式
,多维数组则是每一个元素都是一个数组对象的数组。
数组和其他鸠合类一样都是是完成了ICollection接口,都具有罗列和迭代功用。
以上就是C#基础知识整顿:基础知识(14) 数组的内容,更多相关内容请关注ki4网(www.ki4.cn)!