所谓数组,是有序的元素序列,在C#语言中,数组可以存放任意多个同类型数据,但是一个数组在创建后,它的长度将固定不变,不能增加、也不能减少数据,这就是它的定长性。所有就有了更灵活的集合,集合能够保存的数据不定长,可以在程序执行的过程中,不断的发生变化,任意增加、或减少、或修改。在功能上,数组能实现的所有功能,集合都能实现,反之则不行。
在声明与赋值方面:
数组声明:数据类型[] 变量名 例如:
int[] numbers =new int[5]; //定义了一个numbers变量,它是一个数组可以存放5个int类型的数据
集合声明:List变量名; 例如:
List nums=new List();
集合还可以任意添加、删除、修改元素,实现如下:
//添加元素:变量名.Add(要添加的数据);
List nums=new List{3,5,7};
nums.Add(3);
//插入元素:变量名.Insert(索引,要插入的数据);
List nums=new List{3,5,7};
nums.Insert(1,10);
//删除元素:变量名.RemoveAt(索引); -->删除指定索引位置的元素
//变量名.Remove(数据); -->删除集合中与填写的数据相同的第一个匹配项
List nums=new List{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
{
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 arrays = new List();
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(); //每一个循环结束后清屏