C# - 系统类 - Array类
Array类
ns:System
Array是一个抽象类 表示数组 提供了创建、查找、删除、排序、修改等应用于数组的操作 此类没有公有的实例构造函数 可以使用静态方法CreateInstance创建Array实例 数组一旦创建 则不能在后来修改其长度 长度就是数组存储的元素个数
Array类的静态方法
CreateInstance静态方法
用于创建数组实例 你可以使用用类似int[] arr = new int[3]{1,2,3}这样的语法格式创建数组 也可以使用Array类的静态方法CreateInstance来创建数组
elementType:数组数据类型
length:数组长度 即元素个数
length1:二维数组中第0维度的元素个数 元素指行
length2:二维数组中第1维度的元素个数 元素指列
如以下创建了一个数组并设置了数组的元素
Array ary=Array.CreateInstance();
ary.SetValue();
ary.SetValue();
foreach (var item in ary)
{
Console.WriteLine(item);//return sam leo
}
一般很少会创建三维甚至N维度的数组 这里列出使用CreateInstance静态方法来创建一个二维数组的例子 仅供参考
Array b=Array.CreateInstance(, );//创建一个int类型的 2行3列的二维数组
b.SetValue(, ,);//设置第0行第0列元素的值
b.SetValue(, , );
b.SetValue(, , );
b.SetValue(, , );//设置第1行第0列元素的值
b.SetValue(, , );
b.SetValue(, , );
int[,] Ary = (int[,])b;
//按表格的形式循环打印出二维数组的元素
; i <= Ary.GetUpperBound(); i++)
{
; z <= Ary.GetUpperBound(); z++)
{
Console.Write(Ary[i, z].ToString().PadRight());
}
Console.WriteLine("");
}
结果如图

BinarySearch静态方法
使用二进制搜索算法在参数提供的数组中搜索指定的元素 返回元素下标 可以指定搜索的起始下标和从起始下标开始的搜索的元素个数来搜索指定元素的位置 搜索不到返回-1
array:数组
value:元素对象
startIndex:搜索的起始下标
length:搜索的长度
comparer:比较元素时要使用的 IComparer 实现
Clear静态方法
将参数提供的数组的元素清除 并不真正清除元素而是将元素的值根据元素的类型设为对应的0、null、false
array:数组
index:元素的起始下标
length:要清除的元素个数 将从index指定的下标处开始清除 清除length提供的个数
string[] strAry={"a","b"};
Array.Clear(strAry, , );//从下标0开始清除元素 清除个数为两个
Console.WriteLine(strAry[]==null);//return true
Copy静态方法
将sourceArray数组的一部分元素复制到destinationArray数组中 源数组和接收拷贝元素的数组可以是不同类型的 但必须是可以转换的 如果一个引用类型的数组的元素被拷贝到另一个引用类型的数组中 则会发生浅拷贝 这意味着新数组存储的拷贝元素将是对源数组中对应的元素的引用
sourceArray:源数组
destinationArray:接收复制数据的数组
length:要copy的元素个数
sourceIndex:源数组元素的下标 将从此下标开始复制 可选
destinationIndex:接收复制数据的数组存储复制元素的开始处的索引 可选
string[] strAry={"a","b"};
];
Array.Copy(strAry, newStrAry, strAry.Length);
Console.WriteLine(newStrAry[]);//return a
IndexOf静态方法
在参数指定的数组中查找指定的元素 返回元素的下标 找不到返回-1
array:数组
value:查找的元素对象
startIndex:查找的起始下标 将从此处开始查找
length:查找的元素个数
LastIndexOf静态方法
与IndexOf方法类似 区别仅在于IndexOf是从数组最右边开始查找 LastIndexOf则从数组最左边开始查找
Reverse静态方法
倒转参数指定的数组的元素 可以指定startIndex和length 以倒转指定的元素
array:数组
startIndex:要倒转的元素的起始下标
length:要倒转元素的个数
Sort静态方法
对数组的元素执行排序 通过startIndex和length可以指定对数组的某一部分元素执行排序 可以传递一个IComparer对象以实现自定义的比较
array:数组
Keys:包含要排序的关键字的数组
items:包含与keys中每个键对应的项
comparer:比较元素时要使用的IComparer实现
startIndex:排序范围的起始索引
length:排序范围内的元素个数
Array类的实例方法
Clone方法
返回对当前数组的一个浅拷贝 如果数组是引用类型 则新的拷贝出来的数组会保持对原数组的元素的引用
CopyTo方法
拷贝当前数组的元素到参数指定的数组中 可以提供index参数 该参数指定要拷贝的元素到目标数组中的起始下标
string[] strAry={"a","b","c","d"};
];
strAry.CopyTo(newStrAry, );
foreach (var item in newStrAry)
{
Console.WriteLine(item);
}
GetEnumerator方法
返回一个IEnumerator对象 该对象可以从数组中读取元素
string[] strAry={"a","b","c","d"};
IEnumerator list= strAry.GetEnumerator();
while (list.MoveNext())
{
Console.WriteLine(list.Current);//return a b c d
}
GetUpperBound
获取指定维度中元素的总个数 元素个数从0开始计算 对于二维数组 参数为0则表示获取维度0的元素总个数 元素指行 参数为1则表示获取维度1的元素总个数 元素指列
GetLowerBound
获取指定维度中元素的最小个数 元素个数从0开始计算 对于二维数组 此方法一般都返回0 除非你自定义了基于非0索引的数组
GetLength方法
获取参数指定的数组的维度中的元素个数 下面的例子获取了二维数组中第0维度和1维度中的元素个数 0维度的元素指的是行 1维度的元素指的是列 此方法类似于GetUpperBound 只不过GetUpperBound是从0开始统计元素 而GetLength从1开始统计元素
, , }, { , , } };
; i < Ary.GetLength(); i++)//Ary.GetLength(0)获取总行数
{
; z < Ary.GetLength(); z++)//Ary.GetLength(1)获取总列数
{
Console.Write(Ary[i, z].ToString().PadRight());
}
Console.WriteLine("");
}
虽然可以使用Length属性得到数组的元素个数 但如果是二维数组调用Length 则会得到每个维度中的元素的个数之和 即行总数+列总数
GetValue方法
根据参数指定的索引获取数组的元素
index:元素的索引
index1:二维数组的行索引
index2:二维数组的列索引
下面例子演示了获取二维数组中第0行第1列的元素
, , }, { , , } };
Console.WriteLine(Ary.GetValue(, ));//return 2
SetValue方法
设置或修改数组的元素
value:元素
index:元素索引
index1:二维数组的行索引
index2:二维数组的列索引
, , };
Ary.SetValue(, );
Console.WriteLine(Ary.GetValue());//return 100
, , }, { , , } };
Ary.SetValue(,,);
Console.WriteLine(Ary.GetValue(,));//return 100
C# - 系统类 - Array类的更多相关文章
- C# - 系统类 - Type类
Type类 ns:System Type类封装类型 它的实例提供一个特定类型的数据和函数成员的信息 可以使用Type类实例来调用类型的成员 一般将Type类用于反射 Type类的静态字段如下 Empt ...
- runtime-给系统已有类添加属性
在没有接触runtime之前,我们接触到的能给类进行扩展的方法有类目(category)和延展(extension)两种.类目(category)可以给系统已有类添加扩展方法但是不能添加属性,并且被添 ...
- Java集合---Array类源码解析
Java集合---Array类源码解析 ---转自:牛奶.不加糖 一.Arrays.sort()数组排序 Java Arrays中提供了对所有类型的排序.其中主要分为Prim ...
- .NET中string[]数组和List<string>泛型的相互转换以及Array类的Sort()方法(转)
从string[]转List<string>: " }; List<string> list = new List<string>(str); 从List ...
- javascript Array类
Array类 toString()方法和valueOf()方法,返回特殊的字符串.该字符串是通过对每项调用toString()方法,然后用逗号把它们连接在一起构成的.例如,对具有项"red& ...
- [BS-04] 在iOS中对系统定义的类的readonly属性可通过KVC进行赋值
系统提供的类的readonly属性可通过KVC进行赋值 UITabBarController.h @interface UITabBarController : UIViewController &l ...
- 探索Win32系统之窗口类(转载)
Window Classes in Win32 摘要 本文主要介绍win32系统里窗口类的运做和使用机制,探索一些细节问题,使win32窗口类的信息更加明朗化. 在本文中,"类", ...
- Java笔记:与系统交互、系统相关的类,Object类
1.程序与用户交互 (1)运行一个Java程序的时候要给它提供一个main方法入口,这边分析一下这个main方法的签名public static void main(String[] args);pu ...
- Array类的Sort()方法
刚复习了Array类的sort()方法, 这里列举几个常用的,和大家一起分享. Array类实现了数组中元素的冒泡排序.Sort()方法要求数组中的元素实现IComparable接口.如System. ...
随机推荐
- MinGW 编译libwebsockets
libwebsockets是一个轻量的纯C库,在这里尝试使用MinGW进行构建. 官网地址:http://libwebsockets.org/trac/libwebsockets下载地址:http:/ ...
- [OJ] Data Stream Median (Hard)
LintCode 81. Data Stream Median (Hard) 思路: 用一个大根堆保存较小的一半数, 一个小根堆保存较大的一半数. 每次根据num和两个堆顶的数据决定往哪个堆里面放. ...
- PHP remove,empty和detach区别
empty: 把所有段落的子元素(包括文本节点)删除 HTML 代码: <p>Hello, <span>Person</span> <a href=" ...
- bzoj1296
首先先预处理每行刷1~m次最多能正确涂出多少格 然后把每行涂色看做一个物品,当重量为j(这行涂了j次),价值为对应能正确涂出的格子数: 总重量为k,然后做分组背包即可 ..,..,..] of lon ...
- D 系列性能预期
Kenaz Kwa Azure计算运行时项目经理 我们的全新D系列虚拟机为需要快速的本地(临时)存储或更快 CPU 的应用程序提供了卓越的性能:但是为了获得最佳体验,对系统配置原理稍加了解很有必要 ...
- RAC SCAN
在介绍SCAN之前, 先简单的回顾一下ORACLE 关于IP 地址的命名用, 在9I RAC时, ORACLE没有自己的CLUSTERWARE, 主要依靠第三方的集群软件(如HACMP等), 客户端主 ...
- 用jQuery 处理XML-- jQuery与XML
jQuery与XML 快而强的遍历系统,华丽丽的选择器语法,这或许是jQuery 那么流行的原因.当然它还有详尽的文档.它主要是用来处理HTML的,但在这里妳会看到如何应用到XML. 使用jQuery ...
- Android What is Application
本文转自:http://www.cnblogs.com/elleniou/archive/2012/05/16/2502661.html Application和Activity,Service一样是 ...
- dev combobox edit 怎么设置让选项清空
dev combobox edit 怎么设置让选项清空 功能需求: 点击combobox edit1的选项A 使得 combobox edit2出现选项a: 然后再点击combobox edit1的选 ...
- oracle中查看某个用户名下所有的表以及sequence
select table_name from all_tables where owner =upper('jdfp') ; 此处查的是tieba这个用户表空间下的所有表 ...