C# 数组从零开始建立索引,声明时[ ]必须跟在类型后面,而不是标识符后面。所有数组元素必须为同一类型
数组元素可以是任何类型,包括数组类型。数组可以是一维数组或多维数组
1
//声明时同时声明大小
2
int[] iarr = new int[6];
3![]()
4
//声明时赋值,隐式约定大小
5
int[] jarr = new int[] { 1, 2, 3, 4, 5, 6 };
6![]()
7
//数组元素可以是任何类型,包括数组类型
8
char[][] chararr = new char[][] {"Hello".ToCharArray(),"C#".ToCharArray() };
9![]()
10
//多维数组
11
int[,] k = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 } };
//声明时同时声明大小2
int[] iarr = new int[6];3

4
//声明时赋值,隐式约定大小5
int[] jarr = new int[] { 1, 2, 3, 4, 5, 6 };6

7
//数组元素可以是任何类型,包括数组类型8
char[][] chararr = new char[][] {"Hello".ToCharArray(),"C#".ToCharArray() };9

10
//多维数组11
int[,] k = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 } };
|
array常用属性 |
|
| Length | 所有维数中元素的总数 |
| Rank | 获取 Array 的秩(维数) |
|
array常用方法 |
|
| GetLength | 指定维中的元素数 |
| GetUpperBound | 指定维度的上限 |
| GetLowerBound | 指定维度的下限 |
| static Sort Reverse | 对一维数组对象中的元素进行排序 |
| static IndexOf | 返回一维数组中某个值第一个匹配项索引 |
| static LastIndexOf | 返回一维数组中某个值的最后一个匹配项索引 |
以下代码描述了对数组的遍历
1
int[] i;
2
i = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
3
for (int j = 0; j <= i.Length - 1; j++)
4
{
5
System.Console.WriteLine(i[j]);
6
}
7![]()
8
int[,] k = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 } };
9![]()
10
System.Console.WriteLine(k.Length);
11
for (int n = 0; n <= k.GetLongLength(0) - 1; n++)
12
{
13
for (int m = 0; m <= k.GetLongLength(1) - 1; m++)
14
{
15
System.Console.WriteLine("{0},{1}:{2}", n, m, k[n, m]);
16
}
17
}
int[] i;2
i = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };3
for (int j = 0; j <= i.Length - 1; j++)4
{5
System.Console.WriteLine(i[j]);6
}7

8
int[,] k = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 } };9

10
System.Console.WriteLine(k.Length);11
for (int n = 0; n <= k.GetLongLength(0) - 1; n++)12
{13
for (int m = 0; m <= k.GetLongLength(1) - 1; m++)14
{15
System.Console.WriteLine("{0},{1}:{2}", n, m, k[n, m]);16
}17
}ok,在结束数组的学习前,我们做点关于数组的练习。
练习1
声明一个长度为100的int数组,该数组下标为0或偶数的元素值为该下标值的两倍,奇数值为位于该奇数前一个位置值的相反数。即0,0,4,-4,8,-8…..
1
//方案1
2
int[] iArr = new int[100];
3![]()
4
for (int i = 0; i <= iArr.Length - 1; i++)
5
{
6
if (i % 2 == 0)
7
{
8
iArr[i] = i * 2;
9
}
10
else
11
{
12
iArr[i] = -iArr[i - 1];
13
}
14
System.Console.WriteLine("iArr[i]={0}", iArr[i]);
15
}
16
System.Console.WriteLine("-----------------------------");
17
//方案2
18
int[] jArr = new int[100];
19![]()
20
for (int i = 0; i <= jArr.Length - 1; i++)
21
{
22
iArr[i] = i % 2 == 0 ? i * 2 : -iArr[i - 1];
23
System.Console.WriteLine("iArr[i]={0}", iArr[i]);
24
}
25
System.Console.WriteLine("-----------------------------");
//方案12
int[] iArr = new int[100];3

4
for (int i = 0; i <= iArr.Length - 1; i++)5
{6
if (i % 2 == 0)7
{8
iArr[i] = i * 2;9
}10
else11
{12
iArr[i] = -iArr[i - 1];13
}14
System.Console.WriteLine("iArr[i]={0}", iArr[i]);15
}16
System.Console.WriteLine("-----------------------------");17
//方案218
int[] jArr = new int[100];19

20
for (int i = 0; i <= jArr.Length - 1; i++)21
{22
iArr[i] = i % 2 == 0 ? i * 2 : -iArr[i - 1];23
System.Console.WriteLine("iArr[i]={0}", iArr[i]);24
}25
System.Console.WriteLine("-----------------------------");
练习2
声明一个长度为26*2的一维char数组,使用确定循环在该数组中以AaBbCcDd…的方式放入字符。
1
//方案1
2
char[] cArr = new char[26 * 2];
3![]()
4
for (int i = 0; i < 26; i++)
5
{
6
cArr[i * 2] = (char)('A' + i);
7
cArr[i * 2 + 1] = (char)('a' + i);
8
System.Console.WriteLine(cArr[i * 2]);
9
System.Console.WriteLine(cArr[i * 2 + 1]);
10
}
11
System.Console.WriteLine("-----------------------------");
12
//方案2
13
char[] chararray = new char[26 * 2];
14
for (int i = 0; i < chararray.Length; i++)
15
{
16
if (i % 2 == 0)
17
{
18
chararray[i] = Convert.ToChar(Convert.ToInt32('A') + i / 2);
19
}
20
else
21
{
22
chararray[i] = Convert.ToChar(chararray[i - 1].ToString().ToLower());
23
}
24
System.Console.WriteLine(chararray[i].ToString());
25
}
//方案12
char[] cArr = new char[26 * 2];3

4
for (int i = 0; i < 26; i++)5
{6
cArr[i * 2] = (char)('A' + i);7
cArr[i * 2 + 1] = (char)('a' + i);8
System.Console.WriteLine(cArr[i * 2]);9
System.Console.WriteLine(cArr[i * 2 + 1]);10
}11
System.Console.WriteLine("-----------------------------");12
//方案213
char[] chararray = new char[26 * 2];14
for (int i = 0; i < chararray.Length; i++)15
{16
if (i % 2 == 0)17
{18
chararray[i] = Convert.ToChar(Convert.ToInt32('A') + i / 2);19
}20
else21
{22
chararray[i] = Convert.ToChar(chararray[i - 1].ToString().ToLower());23
}24
System.Console.WriteLine(chararray[i].ToString());25
}


浙公网安备 33010602011771号