所謂數組,是有序的元素序列,在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(); //每一個循環結束后清屏
