A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© aynulily 中级黑马   /  2014-3-20 16:14  /  1327 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 aynulily 于 2014-3-22 21:05 编辑

int[] 这样的形式可以定义数组,那么array类有干什么呢,array类是抽象类,其中有很多静态方法,抽象类的静态方法 与非抽象类的静态方法 是同样的用法? 经查 ,说array类是 int[] 的基类 ,这又怎么说?

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

6 个回复

倒序浏览
在 C# 中,数组实际上是对象。System.Array 是所有数组类型的抽象基类型。可以使用 System.Array 具有的属性以及其他类成员,System.Array 类提供许多有用的其他方法/属性,如用于排序、搜索和复制数组的方法
回复 使用道具 举报
一个同学的blog
首先要了解的是C#数组和Array类的关系:

在C#中Array类是所有数组的基类,MSDN上的解释为:“提供一些方法,用于创建、处理、搜索数组并对数组进行排序,从而充当公共语言运行时中所有数组的基类。”,

最常见的属性是:

        Length        获得一个 32 位整数,该整数表示 Array 的所有维数中元素的总数。
下面的代码将 numbers 数组的长度(为 5)赋给名为 LengthOfNumbers 的变量:

int[] numbers = {1, 2, 3, 4, 5};
int LengthOfNumbers = numbers.Length;
最常用的方法:
CreateInstance(Type,Int32[])        创建使用从零开始的索引、具有指定 Type 和维长的多维 Array。 维的长度在一个 32 位整数数组中指定。Array intArray1 = Array.CreateInstance(typeof(int),5)
for(int i=0;i<5,i++)

{

intArray1.SetValues(33,i);
}

该方法第一个参数为创建数组的数据类型,第二个参数定义数组的大小。SetValues()设置数组元素的值,当然对应GetValues()方法用于获取数组元素的值。


C# 还提供 foreach 语句。该语句提供一种简单、明了的方法来循环访问数组的元素。例如,下面的代码创建一个名为 numbers 的数组,并用 foreach 语句循环访问该数组:

int[] numbers = {4, 5, 6, 1, 2, 3, -2, -1, 0};
foreach (int i in numbers)
{
   System.Console.WriteLine(i);
}
由于有了多维数组,可以使用相同方法来循环访问元素,例如:

int[,] numbers = new int[3, 2] {{9, 99}, {3, 33}, {5, 55}};
foreach(int i in numbers)
{
   Console.Write("{0} ", i);
}
该示例的输出为:

9 99 3 33 5 55
不过,由于有了多维数组,使用嵌套 for 循环将使您可以更好地控制数组元素。

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
threederek 发表于 2014-3-20 17:09
一个同学的blog
首先要了解的是C#数组和Array类的关系:

Array.LastIndexOf()有四个参数的重载不是很理解,看msdn上的例子不是很懂,能不能举一个别的例子啊?
回复 使用道具 举报
c# 数组


1、数组:由一系列相同类型的元素组成。

数组也是引用类型,抽象基类为Array。(不像c、c++那样有连续内存区域)

数组元素默认值为0,引用元素为null。

2、一维数组的声明与初始化

int[] array=new int[5];(默认有5个0的数组)

int[] array=new int[]{1,2,3,4,5};(元素已经各自赋值)

int[] array=new int[5]{1,2,3,4,5};(当有指定长度且要赋值时就要全部赋值)

int[] array={1,2,3,4,5};(直接赋值)

int[] array;

array=new int{1,2,3,4,5};(先定义再赋值)

3、多维数组与交错数组

int[,] 多维数组,int[][]交错数组。一般使用交错数组比较多。

int[][] array=new int[5][];

array[0]=new int[5];(总共有5个数组,定义第一个数组)

int[][] array=new int[][]{new int[5],new int[4]};

array[0][0]=1;(new不能省略)

int[][] array = new int[][] {new int[]{1,2,3} };(大括号里其实相当于一维数组操作,参照上面)

int[][] array = {new int[]{1,2,3}};(省略前面的new)

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
aynulily 发表于 2014-3-20 17:46
Array.LastIndexOf()有四个参数的重载不是很理解,看msdn上的例子不是很懂,能不能举一个别的例子啊? ...
  1.         static void Main(string[] args)
  2.         {
  3.             int[] c = new int[8] { 1, 4, 6, 5, 3, 4, 7, 2 };
  4.            
  5.             
  6.             int m1 = Array.LastIndexOf(c, 6, 4,4);  //在数组c中搜索元素6,从下标为4的元素开始,向前搜索4个元素
  7.             int m2 = Array.LastIndexOf(c, 7, 7, 2); //在数组c中搜索元素7,从下标为7的元素开始,向前搜索2个元素
  8.                                                     //重载方法中的第四个参数int count代表你要从开始位置向前搜索
  9.                                                     //count个单位,搜索到显示相应的索引位置,搜索不到显示-1
  10.             Console.WriteLine(m1);
  11.             Console.WriteLine(m2);
  12.             Console.ReadKey();
  13.         }
复制代码

评分

参与人数 1黑马币 +1 收起 理由
aynulily + 1 赞一个!

查看全部评分

回复 使用道具 举报
当有人给你评论时,请把帖子编辑为提问结束,这样我好给你技术分。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马