学了C++语言的数组,再学习C#语言的数组,总会去想它们之间的区别,定义格式,书写形式,赋值形式都不同。相对于C++语言来说,C#语言提供的数组更有实用性,C#语言的数组在元素值不知道的情况下可以动态地实现赋值。
一维数组
一维数组的声明格式:
数据类型 [ ] <数组名称>
对一维数组初始化有两种形式:
(1), int[] Array={1,2,3,4,5,6}
(2), int[] Array=new int[6] {1,2,3,4,5,6}
或int[] Array; Array=new int[6] {1,2,3,4,5,6}
例题:根据索引更改数组中的元素并输出更改后数组的所有元素
<span style="font-size:18px;">using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int[] Array;
Array = new int[6]{1,2,3,4,5,6};
Console.WriteLine("Array的第二个元素:{0}",Array[1]);
Array[1] = 7;
Console.WriteLine("更改后的Array的第二个人元素:{0}",Array[1]);
Console.WriteLine("以下是更改后的Array的所有元素");
foreach (int temp in Array)
{
Console.WriteLine(temp);
}
Console.ReadLine();
}
}
}</span>
输出的结果很清楚的知道为:Array的第二个元素:2
更改后的Array的第二个人元素:7
以下是更改后的Array的所有元素 1 7 3 4 5 6(每一行一个元素的输出)
二维数组
二维数组的声明格式为:
数据类型 [ , ] <数组名称>
对二维数组进行初始化的两种形式:
(1),int[,] Array={(1,2),(3,4),(5,6)}hu
(2),int[,] Array=new int[3,2] {(1,2),(3,4),(5,6)}
或int[,] Array;Array=new int[3,2] {(1,2),(3,4),(5,6)}
例题,根据索引更改数组中的元素并输出更改后数组后的元素
<span style="font-size:18px;">using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int[,] Array;
Array=new int[3,2]{{1,2},{3,4},{5,6}};
Console.WriteLine("更改前Array的数组元素为:");
foreach (int temp in Array)
{
Console.WriteLine(temp);
}
Array[1, 0] = 7;
Array[1, 1] = 8;
Console.WriteLine("更改后Array的数组元素为:");
foreach (int item in Array)
{
Console.WriteLine(item);
}
Console.ReadLine();
}
}
}</span>
输出的结果很简单为:更改前Array的数组元素为:1 2 3 4 5 6
更改后Array的数组元素为:1 2 7 8 5 6(每一行一个元素的输出)
数组排序
Array提供了Sort方法来进行排序,但它常与Reverse方法(反转数组中元素的顺序)一起配合使用。
Sort方法,接受一个数组,将其实现升序,格式为:Array.Sort(数组)
Reverse方法,接受一个数组,将其反转数组中元素的顺序,格式为:Array.Reverse(数组)
例题,对下面的数组进行升序然后再进行降序
<span style="font-size:18px;">using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int[] b;
b=new int[6]{2,1,4,5,3,6};
Array.Sort(b);
Console.WriteLine("升序排列:");
foreach (int temp in b)
{
Console.WriteLine(temp);
}
Array.Reverse(b);
Console.WriteLine("降序排列:");
foreach (int item in b)
{
Console.WriteLine(item);
}
Console.ReadLine();
}
}
}</span>
输出结果很简单为:升序排列:1 2 3 4 5 6
降序排列:6 5 4 3 2 1(每一行输出一个元素)
数组合并与拆分
Array提供了Copy方法实现数组的合并与拆分。Copy方法有四个重载,分别为:
(1)Array.Copy(数组1,数组2,长度)Int32
(2)Array.Copy(数组1,数组2,长度)Int64
(3)Array.Copy(数组1,指定索引,数组2,指定索引,长度)Int32
(4)Array.Copy(数组1,指定索引,数组2,指定索引,长度)Int64
例题,实现合并数组1和数组2为数组3,将数组2拆分给数组4
<span style="font-size:18px;">using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int[] arr1 = {1,2,3,4};
int[] arr2 = {5,6,7,8,9};
int[] arr3=new int[9];
int[] arr4=new int[3];//取数组2中的前三个元素
Array.Copy(arr1, 0, arr3, 0, 4);//合并数组1到数组3
Array.Copy(arr2, 0, arr3, 4, 5);//合并数组2到数组3
Array.Copy(arr2, 0, arr4, 0, 3);//拆分数组2前三个元素到数组4
Console.WriteLine("合并为数组3的元素为:");
foreach (int temp in arr3)
{
Console.WriteLine(temp);
}
Console.WriteLine("拆分为数组4的元素为:");
foreach (int item in arr4)
{
Console.WriteLine(item);
}
Console.ReadLine();
}
}
}</span>
输出的结果为:合并为数组3的元素为:1 2 3 4 5 6 7 8 9
拆分为数组4的元素为:5 6 7