溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C#基礎(chǔ)知識整理:基礎(chǔ)知識(14) 數(shù)組

發(fā)布時間:2020-06-18 12:47:06 來源:網(wǎng)絡(luò) 閱讀:242 作者:yangyoushan 欄目:編程語言

無論哪種語言,肯定會有集合的概念。而最簡單,最直觀的集合應(yīng)該就是數(shù)組了,數(shù)組是在內(nèi)存中連續(xù)的一段空間??纯碈#中數(shù)組

的定義。
1、int[] intArry ;
 intArry= new int[6];
 這里聲明了一個int數(shù)組類型變量intArry,并保存一個具有6個單元的int數(shù)組對象;
 int[,] intArry2 = new int[3, 4];
 聲明一個int二維數(shù)組類型變量,并初始化一個3行4列的數(shù)組對象;
 int[][] intArry3 = new int[9][];
 聲明一個數(shù)組單元為int數(shù)組類型的數(shù)組變量,每個數(shù)組元素是一個int數(shù)組類型的對象引用。
 因為是面向?qū)ο笳Z言,上面提到了引用和對象。其實:
 1、.net Frameword數(shù)組不是一種單純的數(shù)據(jù)結(jié)構(gòu),而是一個類型,叫數(shù)組類型;
 2、.net Framework中的數(shù)組變量保存著引用到數(shù)組類型對象的引用,也就是說數(shù)組是一個對象。
所有.net Framework數(shù)組(int[],string[],object[])都是從Array繼承的子類。一般不直接使用Array類,因為.net Framework下

的各類語言,當(dāng)然也包括C#,將數(shù)組對象映射為各自的特殊語法了,比如int[],string[]。
數(shù)組主要有兩個各屬性:索引和長度,也就是index和length,索引用于訪問數(shù)組對象中的元素,長度也就是數(shù)組的長度。
看一段聯(lián)系代碼:

public class MyArray      {          /// <summary>          /// 定義數(shù)組測試          /// </summary>          public void TestInt()          {              int[] intArry1 = null;                intArry1 = new int[6];                int[,] intArry2 = new int[3, 4];                int[][] intArry3 = new int[9][];          }                    /// <summary>          /// 值類型數(shù)組轉(zhuǎn)引用類型數(shù)組測試          /// </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>          /// 數(shù)組的主要特性測試          /// </summary>          public static void MainTest()          {              //聲明一個包含是個元素的字符串型數(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é)果

C#基礎(chǔ)知識整理:基礎(chǔ)知識(14) 數(shù)組
由上可以知道:
數(shù)組有引用類型數(shù)組和值類型數(shù)組,對于引用類型數(shù)組,元素用于保存對象的引用,初始化值為null;對于值類型數(shù)組,元素保存

對象的值,對于數(shù)字類型初始化值為0。
數(shù)組有維度,但是多維數(shù)組和數(shù)組的數(shù)組是不同的概念,intArrayArray和intArray2D是不同的。數(shù)組的數(shù)組表示一個m*n的行列式

,多維數(shù)組則是每個元素都是一個數(shù)組對象的數(shù)組。
數(shù)組和其他集合類一樣都是是實現(xiàn)了ICollection接口,都具有枚舉和迭代功能。

代碼下載:http://download.csdn.net/detail/yysyangyangyangshan/4640445

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI