c#基础之数组
最近看了c#的数组,比c++的数组更加直接,.net也提供了很多直接直接操纵数组的方法,非常方便,所以就想做个总结。
利用数组,我们可以使用变量来声明相同类型的多个数据项的集合,数组中的每个数据使用索引来进行唯一标识,和大多数语言一样,c#数组中的第一个数据项使用索引0访问。程序员应确保指定的索引值小于数组的大小,因为c#的数组是基于0的,所以最后一个元素的索引值总是比数组元素的总数小1。
虽然初学者应该掌握数组,但是在目前,大多数程序员使用的泛型集合而不是数组,因为泛型集合提供了更多对数据集合操纵的方法,所以在这里只是粗略的介绍下。
申明 在这里为简便起见,基本数据类型全部使用int和string类型。所有代码经过.net 4.5,vs2013测试。
1.声明:
<span style="white-space:pre"> </span>int [] myIntArray;//方括号是放在数据类型后面的,组成已成新的类类型int[],这是一个引用类型。
int [,];//申明一个二维数组,之间要用括号,维数 = 逗号数量+1;
2.赋值:<span style="white-space:pre"> </span>int[]myIntArray = new int[3]{0,1,2};//<span style="white-space:pre">
</span> int[] myIntArray = new int[]{0,1,2};//这是在声明数组是就对数组进行整体赋值,要用new这一关键字表示int[]是一个引用类型。在.net 3.0版本之后,int这个关键字可以省略,但是强烈建议加上。
int[] myIntArray = {0,1,2}//也可以直接用字面值对数组进行初始化。
int[] myIntArray = new int[3];//在不用字面值的情况下,必须指定数组的大小。注意 这里和c++不一样,数组的大小不一的是一个常量,可以是一个经过计算的变量。
int [,] myMultiArray;
myMultiArray = new int[,]{
{1,2,3},
{5,8,9},
{7,5,6}};//二维数组的初始化。
int [,]cells = {
{1,2,3},{0,1},{4}
}; //大小不一致的多维数组会造成错误。
3.交错数组:
int [][]cell =
new int[]{1,2,3},
new int[]{1,2},
new int[]{3}};//交错数组定义由数组构成的数组,在代码中,int[]是数据类型,所以塔之后的[]声明了一个int[]类型的数组。
//注意 交错数组要求为内部的每个数组都创建实例,在这个例子中,我们使用new来实例化交错数组内部的元素,如果遗失这个实例化部分就会编译出错。
4.4.数组的使用 可以用方括号的方法建立索引。
5.5..NET对数组提供的API
Name.Length;//这是一个只读属性,只是这个数组的大小。
Name.Rank;//只读属性,指示这个数组的维数
Name.GetLength(int);//返回给定维数的长度,如代码
bool[,,] cells= new bool[2,3,3];
cells.Getlength(0); //这个函数的返回值为2
system.Array是所有数组的抽象基类,提供了很多操纵数组的静态方法,所以,数组是对象。
数组的其他实例方法 :Max();Min();Average();Sum();
equals(object obj);//返回两个对象是否相等
clone();浅度拷贝
静态方法:
Array.sort();//对数组进行排序
Array.BinarySearch();//二分搜索,必须先排序。
Array.Copy();//拷贝两个数组。
Array.Clear();//将每个元素设置为默认值。
Array.indexof();//Searches for the specified object and returns the index of the first occurrence within the entire
one-dimensional
ArrayArray.LastIndexOf();//Searches for the specified object and returns the index of the last occurrence within the entire one-dimensional Array
Array.Reverse();//Reverses the sequence of the elements in the entire one-dimensional
Array.Reverse();Reverses the sequence of the elements in a range of elements in the one-dimensional
Array.sort(Array,Icomparer)//
Sorts the elements in a one-dimensional using the specified
c#基础之数组的更多相关文章
- 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算
http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...
- [.net 面向对象编程基础] (17) 数组与集合
[.net 面向对象编程基础] (17) 数组与集合 学习了前面的C#三大特性,及接口,抽象类这些相对抽象的东西以后,是不是有点很累的感觉.具体的东西总是容易理解,因此我们在介绍前面抽象概念的时候,总 ...
- PHP基础 之 数组(一)
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- R语言基础:数组&列表&向量&矩阵&因子&数据框
R语言基础:数组和列表 数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, d ...
- Java之--Java语言基础组成—数组
Java语言基础组成-数组 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的数组,数组 ...
- OC基础 可变数组与不可变数组的使用
OC基础 可变数组与不可变数组的使用 1.不可变数组 1.1不可变数组的创建 //实例方法 NSArray *array = [[NSArray alloc] initWithObjects:&quo ...
- 利用Python进行数据分析——Numpy基础:数组和矢量计算
利用Python进行数据分析--Numpy基础:数组和矢量计算 ndarry,一个具有矢量运算和复杂广播能力快速节省空间的多维数组 对整组数据进行快速运算的标准数学函数,无需for-loop 用于读写 ...
- Go语言基础之数组
Go语言基础之数组 本文主要介绍数组(array)及它的基本使用. Array(数组) 数组是同一种数据类型元素的集合. 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化 ...
- 第二十四节:Java语言基础-讲解数组的综合应用
数组的综合应用 // 打印数组 public static void printArray(int[] arr) { for(int x=0;x<arr.length;x++) { if(x!= ...
- GoLang基础数据类型--->数组(array)详解
GoLang基础数据类型--->数组(array)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Golang数组简介 数组是Go语言编程中最常用的数据结构之一.顾名 ...
随机推荐
- Export GridView Data to Excel. 从GridView导出数据到Excel的奇怪问题解析
GridView导出函数内容如下 string attachment = "attachment; filename=Contacts.xls"; Respo ...
- day10---multiprocess 多进程
multiprocess Queue \ Pipe 只是实现进程间数据的传递 Manager 实现了进程间数据的共享,即多个进程可以修改同一份数据 进程模块 multiprocessing #! ...
- php+Mysqli利用事务处理转账问题实例
本文实例讲述了php+Mysqli利用事务处理转账问题的方法.分享给大家供大家参考 <?php /**php+Mysqli利用事务处理转账问题实例 * author http://www.lai ...
- jquery选择器如何获取父级元素、同级元素、子元素
一.新建页面 <ul> <li>list item 1</li> <li>list item 2</li> <li class=&qu ...
- PowerShell笔记
教程: http://www.pstips.net/powershell-online-tutorials/ http://www.3fwork.com/a113/ 1. 查看成员 $MyInvoca ...
- 【读书笔记】-- JavaScript数组
数组是一段线性分配的内存,它通过整数计算偏移并访问其中的元素.大多数的语言都会要求一个数组的元素是相同类型,但JavaScript数组可以包含任意类型. var misc = ['string', n ...
- C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
- java提高篇(十三)-----equals()方法总结
equals() 超类Object中有这个equals()方法,该方法主要用于比较两个对象是否相等.该方法的源码如下: public boolean equals(Object obj) { retu ...
- C#Light V0.08A 执行字符串中的C#
C#Lite第一批规划的功能已经全部完成 V0.08A 加入了var 表达式支持 完成了类型静态函数和静态成员的访问 之前已完成了非静态的 之所以还不进入beta是临时决定第一批就加入数组的功能. 项 ...
- 一个老菜鸟所理解的UX及产品流
从事前端开发到目前为止已经有4年多的时间了,从一个小菜鸟一路依靠自学,到目前总算一个老菜鸟了.当然了,从事前端的工作,是免不了要对产品以及用户体验有些许了解的.最近谈论起这方面的内容,就按照自己的想法 ...