.net框架-数组
.net框架所有数组均隐藏继承自System.Array。
数组有维数(Rank),长度(Length),元素类型(Element Type)基本属性.
数组基类System.Array:
Array实现了以下几个接口:ICloneable、IEnumerable、ICollection、IList。
Array中常被忽视的几个属性与方法:
Rank:只读实例属性,返回数组的维数。
GetLength:实例方法,返回数组中指定维数的元素个数。
Length:只读实例属性,返回数组中所有元素的总个数(我一直以为这个是返回某维数的元素个数,真是惭愧)。
GetLowerBound:实例方法,返回数组中指定维数的下限。
GetUpperBound:实例方法,返回数组中指定维数的上限。
IsSynchronized:只读实例属性,指示数组的访问是否线程安全,通常总为false。
SyncRoot:只读实例属性,返回一个可用来同步访问数组的对象。关于IsSynchronized和SyncRoot属性,可参看该文章:http://www.cnblogs.com/free722/archive/2011/03/25/1995120.html
GetEnumerator:实例方法,为数组返回一个IEnumerator。
Sort:静态方法,对数组元素进行排序,数组元素必须实现ICompare接口。
BinarySearch:静态方法,使用二分搜索法来搜索指定数组中的指定元素。该方法假定数组本身已经排好序。通常在调用BinarySearch前应首先调用Sort方法。
IndexOf:静态方法,返回某个值在数组中第一次出现的索引值。
LastIndexOf:静态方法,返回某个值在数组中最后一次出现的索引值。
Reverse:静态方法,反转数组全部或部分元素顺序。
Clone:实例方法,返回一个新创建数组,该数组是源数组的一个浅拷贝。
CopyTo:实例方法,将源数组中的元素拷贝到目的数组中。
Copy:静态方法,将一个数组中的部分元素拷贝到另一数组中,并根据需要进行适当转型。
CreateInstance:静态方法,创建一个数组实例,它允许我们动态定义拥有任何类型、任何维数、任何上下限的数组。
Array实现了以下几个接口:ICloneable、IEnumerable、ICollection、IList
public interface ICloneable
{
object Clone();
} public interface IEnumerable
{
IEnumerator GetEnumerator();
} public interface ICollection : Ienumerable
{
int Count{get;} //元素个数 bool IsSynchronized{get;} //是否同步集合访问(线程安全) object SyncRoot{get;} //获取可同步访问对象 void CopyTo(Array array,int index); //从指定索引处复制数组元素到另一个数组。
} public interface IList : ICollection,IEnumberable
{
object this[int index] {get;set;} //获取或设置位于指定索引处的元素 bool IsFixedSize { get; } //是否固定大小 bool IsReadOnly { get; } //是否只读 增:
int Add(object value) //将项目添加到Ilist中 int Insert(int index, object value) //将项目插入到指定索引位置 删:
void Clear() //移除IList所有项目 void Remove(int index) //移除指定索引处的Ilist项目 void Remove(object value) //移除特定对象的第1个匹配项 查:
bool Contains(object value) //是否包括特定值 int IndexOf(object value) //返回特定项目索引
}
原文:http://www.cnblogs.com/free722/archive/2011/03/28/1998153.html
.net框架-数组的更多相关文章
- ThinkPHP框架数组定义
PHP数组定义 ThinkPHP框架中所有配置文件的定义格式均采用返回PHP数组的方式,格式为: //项目配置文件 return array( 'DEFAULT_MODULE' => 'Inde ...
- Foundation框架—— 数组 (NSArray NSMutableArray )
基础知识回顾 1.在给可变数组添加元素时,要保证该数组已被初始化 2.在遍历可变数组时,不能对其进行增删改 3.NSMutableArray继承自NSArray,几乎拥有NSArray的一切方法. 4 ...
- .net框架-数组(Array)& ArrayList & List
数组(Array)特点: 初始化时规定长度 元素类型相同 数据存储连续,效率高 System.Collections.ArrayList : 初始化时无需规定长度,长度随存储的数据动态扩充与收缩 元素 ...
- Java--接口和类集框架
一.接口 接口是静态常量和抽象方法的集合.也就是说,接口中只能有静态常量和抽象方法. public interface Pet { public static final int A = 10; pu ...
- 转:最近5年133个Java面试问题列表
最近5年133个Java面试问题列表 Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来 ...
- Java笔试题解答和部分面试题
面试类 银行类的问题 问题一:在多线程环境中使用HashMap会有什么问题?在什么情况下使用get()方法会产生无限循环? HashMap本身没有什么问题,有没有问题取决于你是如何使用它的.比如,你 ...
- 近5年133个Java面试问题列表
Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入. 在我 ...
- c# 编程语言tag
['JavaScript','Objective-C','C++','C#','Basic','PHP','Python','Perl', 'Transact-SQL','ruby','CSS3',' ...
- 最近5年183个Java面试问题列表及答案[最全]
Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别(String 类型和 StringBuffer 类型的主要性能区别其实在于 Stri ...
随机推荐
- TestNG执行顺序控制
1.class执行顺序控制---testng.xml之preserve-order preserve-order:用来控制<test>里面所有<classes>的执行顺序.&l ...
- Prometheus入门到放弃(4)之cadvisor监控docker容器
Prometheus监控docker容器运行状态,我们用到cadvisor服务,cadvisor我们这里也采用docker方式直接运行. 1.下载镜像 [root@prometheus-server ...
- hdu 2962 题解
题目 题意 给出一张图,每条道路有限高,给出车子的起点,终点,最高高度,问在保证高度尽可能高的情况下的最短路,如果不存在输出 $ cannot reach destination $ 跟前面 $ ...
- 用海豚框架(DolphinPHP)实现单/多图片上传时,如何获得图片路径
用框架实现图片上传很简单,就不多说了,然后这个框架的实现机制是这样的,我们选择图片,点击上传,他会将图片保存在uploads下,以当天时间和随机字母作为图片名,然后在返回个数字,这个数字是这个图片的i ...
- epoll_ctl函数的使用
#include <sys/epoll.h> int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);作用: ...
- 数组中重复的数字(Python)
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019-08-13 22:35 # @Author : daryl # @File : ...
- quartz2.3.0(六)job任务异常处理方式
Job1类 package org.quartz.examples.example6; import org.quartz.DisallowConcurrentExecution; import or ...
- vim的多文件编辑和多窗口功能
有的时候我们可能会需要打开多个文件同时进行编辑,例如把一个文件的内容复制到另一个文件中时: 多文件编辑 :n :编辑下一个文件 :N : 编辑上一个文件 :files :列出目前这个vim打开的所有文 ...
- FireWolf OS X PE
FireWolf OS X PE FireWolf OS X PE 9 使用手册 https://pe.firewolf.app/manual/ https://pe.firewolf.app/m ...
- Linux虚拟机设置静态ip
二.设置静态ip dhclient 动态分配ip 修改 ifcfg-ens33网卡配置文件 静态分配ip dhclient -r (释放动态分配的ip地址) vi /etc/sysconfig/ne ...