第2章.数组和ArrayList
2.1 数组基本概念
数组是可索引的数据的集合。数组既可以是内置的类型,也可以是用户自定义的类型。事实上,把数组数据称为对象大概是最简便的方式。C#中数组实际上就是对象的本身,因为它们都源于System.Array类的一个声明实例,所以在使用数组时也可以使用此类的所有方法和属性。
2.1.1 数组的声明和初始化
namespace test
{
class Program
{
static void Main(string[] args)
{
//实例化数组需要确定数组大小 此处预留了5个字符串的内存空间
string[] names = new string[]; //也可以采用初始化列表的方式来实现 无需指定元素个数
int[] numbers = new int[] { , , , , };
}
}
}
2.1.2 数组元素的设置和存取访问
namespace test
{
class Program
{
static void Main(string[] args)
{
string[] nNames = new string[]; //存储数组元素既可以采用直接存取访问的方法也可以通过调用Array类的SetValue方法 //直接存取方式通过赋值语句左侧的索引来引用数组位置
nNames[] = "Raymond"; //SetValue方法会取走两个参数 一个是索引数另一个是元素值
nNames.SetValue("Raymond", ); //数组元素访问原理同上
string s1 = nNames[];
string s2 = nNames.GetValue() as string;
}
}
}
2.1.3 取回数组元数据的方法和属性
namespace test
{
class Program
{
static void Main(string[] args)
{
//Array类为取回数组元素数据提供了几种属性:
//Length:返回数组所有维数内元素的总数量
//GetLength:返回数组指定维数内元素的数量
//Rank:返回数组的维数
//GetType:返回当前数组实例的类型 int[] numbers = new int[] { , , , , };
Type arrayType = numbers.GetType();
if (arrayType.IsArray)
{
Console.WriteLine("The array type is: {0}", arrayType);
}
else
{
Console.WriteLine("Not an array");
}
Console.Read();
}
}
}
2.1.4 多维数组
参考链接:https://www.runoob.com/csharp/csharp-multi-dimensional-arrays.html
2.1.5 参数数组
参考链接:https://www.runoob.com/csharp/csharp-param-arrays.html
2.1.6 锯齿状数组
参考链接:https://www.runoob.com/csharp/csharp-jagged-arrays.html
2.2 ArrayList类
当无法提前知道数组的大小或者在程序运行期间数组的大小可能会发生改变的时候,静态数组就不是很适用了。这类问题的一种解决方案就是当数组超出存储空间的时候使用能够自动调整自身大小的数组类型。这种数组被称为是ArrayList。它是.Net框架库中System.Collections命名空间的内容。
ArrayList对象拥有可存储数组大小尺寸的Capacity属性。该属性的初始值为16。当AarrayList中元素的数量达到此界限值时,Capacity属性就会为ArrayList的存储空间另外增加16个元素。在数组内元素数量有可能扩大或缩小的情况下使用ArrayList会比用带标准数组的ReDim Preserver更加有效。
2.2.1 ArrayList类的成员
ArrayList类常用方法和属性:
Add( ):向ArrayList添加一个元素。
AddRange( ):在ArrayList末尾处添加群集的元素。
Capacity( ):存储ArrayList所能包的含元素的数量。
Clear( ):从ArrayList中移除全部元素。
Contains( ):确定指定的对象在ArrayList内。
Copy To( ):把ArrayList或其中的某一段复制给一个数组。
Count( ):返回ArrayList中当前元素的数量。
GetEnumerator( ):返回迭代ArrayList得到计数器。
GetRange( ):返回ArrayList的子集作为ArrayList。
IndexOf( ):返回指定数据项首次出现的索引。
Insert( ):在ArrayList的指定索引处插入一个元素。
InsertRange( ):从ArrayList指定索引处开始插入群集的元素。
Item( ):在指定索引处获取或者设置一个元素。
Remove( ):移除指定数据项的首次出现。
RemoveAt( ):在指定索引处移除一个元素。
Reverse( ):对ArrayList中元素的顺序进行反转。
Sort( ):对ArrayList中的元素按照阿拉伯字母表顺序进行排序。
ToArray( ):把ArrayList的元素复制给一个数组。
TrimToSize( ):为ArrayList中元素数量设置ArrayList的容量。
最新文章
- DOM扩展之HTML5 插入标记
- python环境搭建-在Windows上安装python3.5.2
- oracle用户创建及权限设置及表空间
- 使用RBTool自动提交code review请求
- ubuntu 64位android项目报错的解决方案,打开64位 Ubuntu 的32位支持功能
- php源码编译常见错误解决方案
- python metaclass 入门简介
- 数字图像处理-----主成成分分析PCA
- uploadify在struts2下的使用
- 低功耗之战!ANT VS Bluetooth LE
- 利用PS滤镜及图层叠加制作水墨荷花
- ue4构建光照失败问题与解决
- SpriteBuilder实现2D精灵光影明暗反射效果(一)
- 浅入深出Vue:工具准备之PostMan安装配置及Mock服务配置
- Linux 下的分屏利器-tmux安装、原理及使用
- spring boot下MultipartHttpServletRequest如何提高上传文件大小的默认值
- php把一些预定义的 HTML 实体转换为字符。
- python 基础知识点二
- Maven+Spirng+Mybatis+CXF搭建WebService服务
- SpringMVC探究-----从HelloWorld开始