C#中的数组是一种非常重要的数据结构,能够存储一组相同类型的值。在实际编程中,数组经常被用作存储数据的容器,例如成绩、温度、时间等等。本文将介绍C#中数组的基本知识和用法。
C#中的数组是一个固定长度的有序集合,它包含相同数据类型的元素。数组的长度是在创建数组时指定的,一旦创建后,数组的长度就不能再改变了。数组可以存储基本类型的值,也可以存储对象和字符串等引用类型的值。
数组的定义语法如下:
数据类型[] 数组名 = new 数据类型[长度];
其中,数据类型表示数组存储的数据类型,数组名表示数组的名称,长度表示数组的长度。例如,定义一个长度为10的整型数组:
int[] nums = new int[10];
数组中的元素可以通过索引访问,索引从0开始,依次递增。例如,访问数组nums中的第一个元素:
int firstNum = nums[0];
可以看到,使用方括号[]来访问数组元素,其中方括号中的数值表示要访问的元素的索引。
数组元素的赋值也是类似的,例如,给数组nums中的第一个元素赋值为10:
nums[0] = 10;
数组中的元素可以通过遍历的方式逐个访问。常用的遍历方式有for循环和foreach循环。
使用for循环遍历数组:
for (int i = 0; i < nums.Length; i++)
{int num = nums[i];Console.WriteLine(num);
}
在for循环中,i表示数组的索引,nums.Length表示数组的长度。for循环将从索引0开始遍历数组,依次访问每个元素并输出其值。
使用foreach循环遍历数组:
foreach (int num in nums)
{Console.WriteLine(num);
}
在foreach循环中,num表示数组中的元素。foreach将逐个访问数组中的元素,并输出其值。
除了一维数组之外,C#还支持多维数组。多维数组是指包含多个维度的数组,例如二维数组、三维数组等等。多维数组的定义和访问方式和一维数组类似。
定义一个二维数组:
int[,] matrix = new int[3, 4];
二维数组可以看做是一个矩阵,第一个维度表示行,第二个维度表示列。使用for循环遍历二维数组:
for (int i = 0; i < matrix.GetLength(0); i++)
{for (int j = 0; j < matrix.GetLength(1); j++){int num = matrix[i, j];Console.Write(num + " ");}Console.WriteLine();
}
在for循环中,i和j分别表示数组的行和列,matrix.GetLength(0)表示数组的行数,matrix.GetLength(1)表示数组的列数。循环将遍历二维数组的所有元素并输出其值。
//第一种方式
int[] num1 = new int[10]; //长度为10,下标为0-9,int类型
//第二种方式
int[] num2 = new int[] { 1,2,3,4,5}; //此数组就存5个值
//第三种方式
int[] num3 = new int[3] { 1, 2, 3 }; //个数和声明数必须一致。此数组就存3个值,值都清楚
//第四种方式
int[] num4 = { 1, 2, 3, 4, 5 }; //简写法
int[] num1=new int[10];
num1[8]=20;
console.WriteLine(num1[8]);
Console.WriteLine(
Console.WriteLine("请输入班级人数");int avg = 0;int sum = 0;if (int.TryParse(Console.ReadLine(),out avg )){int[] score = new int[avg];for (int i = 0; i <score.Length ; i++){Console.WriteLine("请输入第{0}个人的成绩",i++);score[i] = int.Parse(Console.ReadLine());sum += score[i];}Console.WriteLine("总成绩为{0},平均成绩为{1}",sum ,sum/avg);}else{Console.WriteLine("输入有误");}Console.ReadKey();
}
int[] nums = { 1, 2, 3, 0, 9 };
int max = int.MinValue; //求最大值
int min = int.MaxValue; //求最小值
int sum = 0; //总和初始化为0for (int i = 0; i < nums.Length ; i++){if(nums[i]> max) //求最大值{max = nums[i]; }if(nums[i]< min) //求最小值{min = nums[i];}sum += nums[i]; //求和
}
Console.WriteLine("最大值为{0},最小值为{1},总和为{2},平均值为{3}",max,min,sum,sum/nums.Length );
Console.ReadKey();
int[] nums = new int[] { 98, 54, 54, 322, 43, 23 }; //一个数组nums,并赋值(要被排序的数组)
int temp = 0;for (int i = 0; i < nums.Length - 1; i++) //循环的轮数,需要6-1=5轮
{for (int j = 0; j < nums.Length - 1 - i; j++) //比较的次数(随着轮数的增加,比较次数减少){if (nums[j] > nums[j + 1]) //相邻两数进行比较,如果前一位>后一位 {temp = nums[j]; //交换位置nums[j] = nums[j + 1];nums[j + 1] = temp;}}
}for (int i = 0; i < nums.Length ; i++) //循环输出排序之后的数组元素
{Console.Write(nums[i]+"t"); //在控制台输出结果,并排序(t)
}
Console.ReadKey();
int[] nums = new int[] { 1, 2, 3, 4, -1 };
Array.Sort(nums);
for (int i = 0; i < nums.Length ; i++)
{Console.WriteLine(nums[i] + "t");
}
Console.ReadKey ();
int[] nums = new int[] { 1, 2, 4, 3, -1 }; //定义一个数组,并赋值
Array.Sort(nums); //Array类,对数组元素进行排序
//Array.Reverse(nums); //反转,颠倒原来数组,如,颠倒后:-1,3,4,2,1
for (int i = nums.Length - 1; i >= 0; i--) //倒着输出结果
{Console.Write(nums[i] + "t");
}
Console.ReadKey();
class Program
{static void Main(string[] args) {Program.ArraySort(); //调用ArraySort这个方法Console.ReadKey();}public static void ArraySort() //写了一个ArraySort方法,对数组进行排序{int[] nums = new int[] { 2, 3, 43, 23, 243, 3 }; //定义一个数组,并赋初值int max = int.MinValue; //最大值int min = int.MaxValue; //最小值int sum = 0; //给求和赋初值为0for (int i = 0; i < nums.Length; i++) //for循环,对数组进行遍历{if (nums[i] > max) //求最大值{ max = nums[i]; }if (nums[i] < min) //求最小值{min = nums[i];}sum += nums[i]; //求和}Console.WriteLine("最大值为:{0},最小值为:{1}", max, min); //在控制台输出最大值、最小值Console.WriteLine("和为:{0},平均值为:{1}", sum, sum / nums.Length); //在控制台输出和、平均数}
}
string[] names = new string[] { "阿花", "阿杰", "阿健" };string result = "";//定义一个字符串result用来接收加|之后的元素
for (int i = 0; i <names.Length- 1; i++)//for循环遍历数组元素
{result += names[i] + "|";//result=names某个元素+|
}
Console.WriteLine(result+names[names.Length-1]);//在控制台输出结果,最后一个元素不加“|”
Console.ReadKey();
int[] nums = new int[] { -2, 3, 43, 23, 243, 3,0};
for (int i = 0; i < nums.Length; i++)
{if (nums[i]>0){nums[i]++;}if(nums[i]<0){nums[i]--;}
}for (int i = 0; i < nums.Length; i++)
{Console.WriteLine(nums[i]+"t");
}
Console.ReadKey();
将一个字符串数组的元素的顺序进行反转:{”我“,”是“,“好人”}{”好人“,”是“,”我“}。第i个和第length-i-1个进行交换
//方法一:Array.Reverse
string[] text = new string[] { "我", "是", "好人" }; //定义一个数组text并赋值
Array.Reverse(text); //反转
for (int i = 0; i < str.Length; i++) //遍历数组
{Console.Write(str[i] + "t"); //在控制台输出结果,注:t是水平制表符
}
Console.ReadKey();
//方法二:forr反转
Array.Sort(text);
for (int i = text.Length - 1; i >= 0; i--)
{Console.Write(text[i] + "t");
}
Console.ReadKey();
本文介绍了C#中数组的基本知识和用法,包括数组的定义、访问、遍历和多维数组等。数组是C#编程中非常实用的数据结构,掌握数组的用法可以提高编程效率和代码质量。
本文发布于:2024-01-31 00:12:41,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170663116523843.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |