C#数组学习

声明数组

在 C# 中声明一个数组,您可以使用下面的语法:

datatype[] arrayName;

其中,

  • datatype 用于指定被存储在数组中的元素的类型。
  • [ ] 指定数组的秩(维度)。秩指定数组的大小。
  • arrayName 指定数组的名称。

例如:

double[] balance;


初始化数组

声明一个数组不会在内存中初始化数组。当初始化数组变量时,您可以赋值给数组。

数组是一个引用类型,所以您需要使用 new 关键字来创建数组的实例

double[] balance = new double[10];

赋值给数组

您可以通过使用索引号赋值给一个单独的数组元素,比如:

double[] balance = new double[10];
balance[0] = 4500.0;

您可以在声明数组的同时给数组赋值,比如:

double[] balance = { 2340.0, 4523.69, 3421.0};

您也可以创建并初始化一个数组,比如:

int [] marks = new int[5]  { 99,  98, 92, 97, 95};

在上述情况下,你也可以省略数组的大小,比如:

int [] marks = new int[]  { 99,  98, 92, 97, 95};

您也可以赋值一个数组变量到另一个目标数组变量中。在这种情况下,目标和源会指向相同的内存位置

int [] marks = new int[]  { 99,  98, 92, 97, 95};
int[] score = marks;

当您创建一个数组时,C# 编译器会根据数组类型隐式初始化每个数组元素为一个默认值。例如,int 数组的所有元素都会被初始化为 0。


foreach的使用

foreach(Type t in arrays)    t:每一个对象   arrays:需要遍历的对象数组  Type:需要遍历每一个的对象的类型
 foreach(int act in num)://如下面程序中,遍历的数组名为num,数组类型为int,遍历出的每个元素为act

namespace Calculate
{
    class number 
    {
        static void Main(string[] argvs)
        { 
            int [] num=new int[10];
            for (int i = 0; i < 10;i++ )
            {
                num[i] = i * i;
            }
            foreach(int act in num)
            {
                Console.WriteLine("the  num is {0}",act);
            }
            Console.ReadLine();       
        }
    }
}

多维数组:

二维数组声明:string变量的二维数组  string [ , ]  names;

int 变量的三维数组 int [ , , ]  num;

数组初始化  int [ , ]  num=new int [3,4]={ {0,1,2,3}, {4,5,6,7}, {5,6,5,4},{1,2,3,4}    };

交错数组:

交错数组是数组中的数组,

交错数组的声明:int [ ][ ] scores;

交错数组的创建:int [ ][ ] scores=new int [5][ ];

for(int i=0;i<scores.length();i++){   scores=new int [4] }

传递数组给函数:

通过指定不带索引的数组名称来给函数传递一个指向数组的指针。

double getval(int [ ] arr); // 引用一个函数

有时,当声明一个方法时,您不能确定要传递给函数作为参数的参数数目。C# 参数数组解决了这个问题,参数数组通常用于传递未知数量的参数给函数。

params 关键字

在使用数组作为形参时,C# 提供了 params 关键字,使调用数组为形参的方法时,既可以传递数组实参,也可以只传递一组数组。params 的使用格式为:

public 返回类型 方法名称( params 类型名称[] 数组名称 )

定义:   class ParamArray
   {
      public int AddElements(params int[] arr)
      {
         int sum = 0;
         foreach (int i in arr)
         {
            sum += i;
         }
         return sum;
      }
   }
应用:        int sum = app.AddElements(512, 720, 250, 567, 889);

Array 类的方法

下表列出了 Array 类中一些最常用的方法:

序号 方法 & 描述
1 Clear
根据元素的类型,设置数组中某个范围的元素为零、为 false 或者为 null。
2 Copy(Array, Array, Int32)
从数组的第一个元素开始复制某个范围的元素到另一个数组的第一个元素位置。长度由一个 32 位整数指定。
3 CopyTo(Array, Int32)
从当前的一维数组中复制所有的元素到一个指定的一维数组的指定索引位置。索引由一个 32 位整数指定。
4 GetLength 
获取一个 32 位整数,该值表示指定维度的数组中的元素总数。
5 GetLongLength
获取一个 64 位整数,该值表示指定维度的数组中的元素总数。
6 GetLowerBound
获取数组中指定维度的下界。
7 GetType
获取当前实例的类型。从对象(Object)继承。
8 GetUpperBound
获取数组中指定维度的上界。
9 GetValue(Int32)
获取一维数组中指定位置的值。索引由一个 32 位整数指定。
10 IndexOf(Array, Object)
搜索指定的对象,返回整个一维数组中第一次出现的索引。
11 Reverse(Array)
逆转整个一维数组中元素的顺序。
12 SetValue(Object, Int32)
给一维数组中指定位置的元素设置值。索引由一个 32 位整数指定。
13 Sort(Array)
使用数组的每个元素的 IComparable 实现来排序整个一维数组中的元素。
14 ToString
返回一个表示当前对象的字符串。从对象(Object)继承。

如需了解 Array 类的完整的方法列表,请参阅微软的 C# 文档。

实例

下面的程序演示了 Array 类的一些方法的用法:

using System;
namespace ArrayApplication
{
    class MyArray
    {
        
        static void Main(string[] args)
        {
            int[] list = { 34, 72, 13, 44, 25, 30, 10 };
            int[] temp = list;

            Console.Write("原始数组: ");
            foreach (int i in list)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();
           
            // 逆转数组
            Array.Reverse(temp);
            Console.Write("逆转数组: ");
            foreach (int i in temp)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();
            
            // 排序数组
            Array.Sort(list);
            Console.Write("排序数组: ");
            foreach (int i in list)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();

           Console.ReadKey();
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值