數組和集合的區別


       所謂數組,是有序的元素序列,在C#語言中,數組可以存放任意多個同類型數據,但是一個數組在創建后,它的長度將固定不變,不能增加、也不能減少數據,這就是它的定長性。所有就有了更靈活的集合,集合能夠保存的數據不定長,可以在程序執行的過程中,不斷的發生變化,任意增加、或減少、或修改。在功能上,數組能實現的所有功能,集合都能實現,反之則不行。

            在聲明與賦值方面:

            數組聲明:數據類型[] 變量名     例如:

int[] numbers =new int[5];    //定義了一個numbers變量,它是一個數組可以存放5個int類型的數據

         集合聲明:List<數據類型>變量名;     例如:

List<int> nums=new List<int>();

            集合還可以任意添加、刪除、修改元素,實現如下:

//添加元素:變量名.Add(要添加的數據);
List<int> nums=new List<int>{3,5,7};
nums.Add(3);

//插入元素:變量名.Insert(索引,要插入的數據);
List<int> nums=new List<int>{3,5,7};
nums.Insert(1,10);

//刪除元素:變量名.RemoveAt(索引);   -->刪除指定索引位置的元素
              //變量名.Remove(數據);  -->刪除集合中與填寫的數據相同的第一個匹配項
List<int> nums=new List<int>{1,1,2,3,5};
nums.RemoveAt(2);              //刪除索引為2的元素
nums.Remove(1);                 //刪除與數據1相同的第一個元素

//修改元素:變量名[索引]=值;

//獲取元素數量(獲取集合長度):變量名.Count

  示例1:數組分析器

            Console.Write("請輸入數組的長度:");
            int len = int.Parse(Console.ReadLine());
            int[] nums = new int[len];
            #region  給數組賦值
            for (int i=0;i<len;i++)            //給數組賦值
            {
                 Console.Write("請輸入數組的第"+(i+1)+"項:");
                 nums[i] = int.Parse(Console.ReadLine());
            }
            Console.Clear();
#endregion
            #region 對數組進行排序並輸出
            Console.WriteLine("您輸入的數字排序后如下:");     //對數組進行排序並輸出
            for (int i = 0; i < len; i++)      
            {
                for (int j = i + 1; j < len; j++)
                {
                    if (nums[i] > nums[j])
                    {
                        int temp = nums[i];
                        nums[i] = nums[j];
                        nums[j] = temp;
                    }
                }
                Console.Write(nums[i]+"\t");
            }
            Console.WriteLine();
            #endregion
            #region 判斷奇數並輸出
            Console.WriteLine("其中,以下數字是奇數:");   //判斷奇數並輸出
            for (int i = 0; i < len; i++)
            {
                if (nums[i] % 2 != 0)
                {
                    Console.Write(nums[i]+"\t");
                }
            }
            Console.WriteLine();
            #endregion
            #region  判斷質數並輸出
            Console.WriteLine("以下數字是質數:");       //判斷質數並輸出
            bool isFind=true;
            for (int i = 0; i < len; i++)
            {
                for (int j = 2; j < nums[i]; j++)
                {
                    if (nums[i] % j == 0)
                    {
                        isFind = false;
                        break;
                    }
                }
                if(isFind)
                Console.Write(nums[i]+"\t");
                isFind = true;
            }
            #endregion
            Console.ReadLine();

  示例2:集合管理器

 List<int> arrays = new List<int>();
            while (true)                   //無限循環
            {
                Console.WriteLine("集合中現有內容如下:");     Console.WriteLine("===============================================");
                if (arrays.Count == 0)                //當集合里沒有值的時候
                {
                    Console.WriteLine("集合中沒有元素");
                }
                else
                {
                    foreach (int array in arrays)
                    {
                        Console.Write(array + "\t");          //遍歷,顯示集合的值
                    }
                    Console.WriteLine();
                }   Console.WriteLine("===============================================");
                Console.WriteLine("1.添加數據");          //獲取用戶輸入
                Console.WriteLine("2.刪除數據");
                Console.WriteLine("3.修改數據");
                Console.WriteLine("4.升序排序");
                Console.WriteLine("0.退出程序");
                Console.Write("請選擇(0-4):");
                string input = Console.ReadLine();
                if (input == "0")                                //用戶輸入0,則推出程序
                {
                    break;
                }
                else if (input == "1")                     //用戶輸入1,則添加數字
                {
                    Console.Write("請輸入要添加的數字:");
                    arrays.Add( int.Parse(Console.ReadLine()));
                }
                else if (input == "2")               //用戶輸入2,則刪除數字
                {
                    if (arrays.Count == 0)
                    {
                        Console.Write("集合中沒有可刪除的數據,按回車繼續");
                        Console.ReadLine();
                    }
                    else
                    {
                        Console.WriteLine("請輸入你要刪除的數據(只會刪除第一個匹配項):");
                        arrays.Remove(int.Parse(Console.ReadLine()));
                    }
                }
                else if (input == "3")         //用戶輸入3,則修改數字
                {
                    if (arrays.Count == 0)
                    {
                        Console.Write("集合中沒有任何數據可以修改,按回車鍵繼續");
                        Console.ReadLine();
                    }
                    else
                    {
                        Console.Write("請輸入要刪除的下標0-" + (arrays.Count - 1) + ":");
                        int index = int.Parse(Console.ReadLine());
                        if (index > (arrays.Count - 1))
                        {
                            Console.Write("輸入錯誤,下標超出范圍,按回車鍵繼續");
                            Console.WriteLine();
                        }
                        else
                        {
                            Console.Write("請輸入新的數據:");
                            arrays[index] = int.Parse(Console.ReadLine());
                        }
                    }
                }
                else if (input == "4")                 //用戶輸入4,則排序
                {
                    if (arrays.Count == 0)
                    {
                        Console.Write("集合中沒有元素,回車繼續");
                        Console.ReadLine();
                    }
                    for (int i = 0; i < arrays.Count; i++)
                    {
                        for (int j = i + 1; j < arrays.Count; j++)
                        {
                            if (arrays[i] > arrays[j])
                            {
                                int temp = arrays[i];
                                arrays[i] = arrays[j];
                                arrays[j] = temp;
                            }
                        }
                    }
                }
                Console.Clear();                  //每一個循環結束后清屏

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM