c#数组

1 数组是引用类型的变量,元素保存在托管堆中元素的引用保存在栈中。交错数组和矩形数组的使用格式如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace ArrayTest
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12             string[][] array=new string[2][];
13             array[0] = new string[3] { "hello","world","!"};
14             array[1] = new string[1] { "lzhq" };
15             PrintArray(array);
16             string[,] array1 = new string[2, 3];
17             for (int i = 0; i < array1.GetLength(0); i++)
18             {
19                 for (int j = 0; j < array1.GetLength(1); j++)
20                 {
21                     array1[i, j] = string.Format("{0}{1}",i,j);
22                 }
23             }
24             PrintArray(array1);
25 
26         }
27         public static void PrintArray(string[][] array)
28         {
29             for (int i = 0; i < array.GetLength(0); i++)
30             {
31                 for (int j = 0; j < array[i].GetLength(0); j++)
32                 {
33                     Console.Write("array[{0}][{1}]={2}  ",i,j,array[i][j]);
34                 }
35                 Console.WriteLine();
36             }
37         }
38         public static void PrintArray(string[,] array)
39         {
40             for (int i = 0; i < array.GetLength(0); i++)
41             {
42                 for (int j = 0; j < array.GetLength(1); j++)
43                 {
44                     Console.Write("array[{0},{1}]={2}",i,j,array[i,j]);
45                 }
46                 Console.WriteLine();
47             }
48         }
49     }
50 }

GetLength(int dimension)可以获取数组指定维数中的元素数
Length属性:可以获取数组所有维数中元素的总数

Rank属性:可以获取数组的维数

注意:数组声明中不允许出现任何关于维数的定义,长度只能出现在赋值运算符的右侧。只有在数组实例化的时候定义数组各维度的长度,此时数组大小的定义也是必须的必须提供。

交错数组是多个一维数组的组合,多个一维数组之间依靠指针相关联。矩形数组是完全的多维数组。

矩形三维数组的使用格式:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace ArrayTest
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12             string[][] array=new string[2][];
13             array[0] = new string[3] { "hello","world","!"};
14             array[1] = new string[1] { "lzhq" };
15             PrintArray(array);
16             string[,] array1 = new string[2, 3];
17             for (int i = 0; i < array1.GetLength(0); i++)
18             {
19                 for (int j = 0; j < array1.GetLength(1); j++)
20                 {
21                     array1[i, j] = string.Format("{0}{1}",i,j);
22                 }
23             }
24             PrintArray(array1);
25             string[, ,] array2 = new string[2, 3, 4];
26             for (int i = 0; i < array2.GetLength(0); i++)
27             {
28                 for (int j = 0; j < array2.GetLength(1); j++)
29                 {
30                     for (int k = 0; k < array2.GetLength(2); k++)
31                     {
32                         array2[i, j, k] = string.Format("{0}{1}{2}",i,j,k);
33                     }
34                 }
35             }
36             PrintArray(array2);
37 
38 
39         }
40         public static void PrintArray(string[][] array)
41         {
42             for (int i = 0; i < array.GetLength(0); i++)
43             {
44                 for (int j = 0; j < array[i].GetLength(0); j++)
45                 {
46                     Console.Write("array[{0}][{1}]={2}  ",i,j,array[i][j]);
47                 }
48                 Console.WriteLine();
49             }
50         }
51         public static void PrintArray(string[,] array)
52         {
53             for (int i = 0; i < array.GetLength(0); i++)
54             {
55                 for (int j = 0; j < array.GetLength(1); j++)
56                 {
57                     Console.Write("array[{0},{1}]={2}",i,j,array[i,j]);
58                 }
59                 Console.WriteLine();
60             }
61         }
62         public static void PrintArray(string[, ,] array)
63         {
64             for (int i = 0; i < array.GetLength(0); i++)
65             {
66                 for (int j = 0; j < array.GetLength(1); j++)
67                 {
68                     for (int k = 0; k < array.GetLength(2); k++)
69                     {
70                         Console.Write("array[{0},{1},{2}]={3}  ",i,j,k,array[i,j,k]);
71                     }
72                 }
73             }
74         }
75     }
76 }

所有数组类型的变量不管是一维数组,矩形数组还是交错数组,所有的数组都可以使用其索引访问其中的元素,都可以用索引定位到数组中的元素。

 

posted on 2012-12-06 17:01 moonfans 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/moonfans/archive/2012/12/06/2805373.html

C# 中,数组是一种用于存储固定大小的同类型数据集合的数据结构。使用数组可以高效地处理多个相同类型的数据项。以下是 C# 数组的常见操作和使用方法: ### 声明和初始化数组C# 中,可以通过多种方式声明和初始化数组: - **一维数组**:`int[] numbers = new int[5];` 创建一个包含 5 个整数的一维数组。 - **直接初始化**:`int[] numbers = {1, 2, 3, 4, 5};` 在声明时初始化数组元素。 ### 访问数组元素 数组中的每个元素都可以通过索引访问,索引从 `0` 开始。例如: ```csharp int[] numbers = {1, 2, 3, 4, 5}; Console.WriteLine(numbers[0]); // 输出第一个元素 1 ``` ### 修改数组元素 可以直接通过索引修改数组中的元素值: ```csharp numbers[0] = 10; // 将第一个元素修改为 10 ``` ### 遍历数组 可以使用 `for` 或 `foreach` 循环遍历数组的所有元素: ```csharp foreach (int num in numbers) { Console.WriteLine(num); // 输出每个元素 } ``` ### 传递数组作为参数 数组可以作为参数传递给方法,以便在方法内部操作数组内容: ```csharp void PrintArray(int[] array) { foreach (int num in array) { Console.WriteLine(num); } } // 调用方法 int[] numbers = {1, 2, 3, 4, 5}; PrintArray(numbers); // 输出数组中的每个元素 [^1] ``` ### 使用 `params` 关键字 C# 提供了 `params` 关键字,允许将可变数量的参数作为数组传递给方法: ```csharp private static int Add(params int[] arr) { int sum = 0; foreach(var item in arr) { sum += item; } return sum; } // 调用方法 Add(1, 2, 3); // 返回 6 Add(new int[] {1, 2, 3}); // 返回 6 ``` 这简化了调用者代码,并允许传递一组相同类型的数据或完全不传递参数 [^2]。 ### 动态创建数组 可以使用 `new` 关键字动态创建数组,指定数组的大小: ```csharp int[] numbers = new int[5]; // 创建一个包含 5 个整数的数组 [^3] ``` ### 多维数组 C# 支持多维数组,包括矩形数组(规则的二维或多维数组)和交错数组数组数组): - **矩形数组**:`int[,] matrix = new int[3, 3];` 表示一个 3x3 的二维数组。 - **交错数组**:`int[][] jaggedArray = new int[][] { new int[] {1, 2}, new int[] {3, 4, 5} };` 表示一个数组数组。 ### 数组排序 C# 提供了内置的排序功能,可以使用 `Array.Sort()` 方法对数组进行排序: ```csharp int[] numbers = {5, 3, 8, 1}; Array.Sort(numbers); // 排序后变为 {1, 3, 5, 8} ``` ### 查找数组元素 可以使用 `Array.IndexOf()` 方法查找特定元素的索引: ```csharp int index = Array.IndexOf(numbers, 3); // 查找数字 3 的位置 ``` ### 复制数组 可以使用 `Array.Copy()` 方法复制数组的一部分到另一个数组中: ```csharp int[] source = {1, 2, 3, 4, 5}; int[] destination = new int[5]; Array.Copy(source, destination, source.Length); // 复制整个数组 ``` ### 数组长度 可以通过 `Length` 属性获取数组的长度: ```csharp int length = numbers.Length; // 获取数组的长度 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值