16 数组

数组是允许将多个数据项当做一个集合来出力的机制。

所有数组类型都是从System.Array继承,而System.Array从Object继承而来

数组相对简单,提供一些稍微注意的代码实例。

string[] name = new string[]{"xiaolu","xiaowang"};
//数组初始化器


//也可以

var names= new []{"xiaolu","xiaozhang"};



//还可以

string names = {"xiaolu","xiaowang"};

//注意的是:不允许
var names = {"xiaolu","xiaowang"};//错误【无法通过编译】


var kids = new []{new {Name = "xiaolu"},new {Name = "xiaowang"}};

c#数组支持协变【派生类—-> 基类】

FileStream[,] fs = new FileStream[5,10];

object[,] o2 = fs;


由于所有数组都是继承于System.ArraySystem.Array 中有很多方便实用的函数【具体查询.netframework SDK】可供实用。

所有数组隐式实现IEnumeralbe,ICollection和IList 等接口、

可以通过 stackalloc 来在栈上为数组分配空间【只能创建一维0基,值类型元素构成的数组,并且值类型不能包含任何引用类型的字段】

unsafe{
    const int width = 20;
    char* pc = stackalloc Char[width];//在栈上分配
    ...
}

如果特别注意性能【可以考虑使用unsafe来去除对数组的越界检查】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值