C#入门(基本数组,Array类型的数组,ArraySegment<T>)

基本数组

数组的定义:存储相同数据类型的集合

第一种写法:动态分配了内存空间

int[] intArray = new int[4];

第二种写法

int[] intArray = {1,2,3,4};

第三种写法

int[] intArray = new int[4]{1,2,3,4};

初始化数组,要么给定其长度,要么初始化数组元素

实际上我们的int[] 它的原型为Array

而int[]数组可以 用foreach循环的原因归根结底为Array类本身已经实现了IEnumrable这个接口。

访问数组元素

intArray[0];访问数组中第0个位置储存的元素。

当数组访问越界时,程序崩溃!

   遍历数组

for循环遍历

   for(int i = 0;i<intArray.Length;i++)

{

    Console.WriteLine ("下标:{0},值{1}",i,intArray[i]);

}

foreach循环遍历

foreach (var item in intArray) {

Console.WriteLine ("数组的元素为:" + item);

   }


如何修改数组里面的元素

通过索引取值进行赋值

intArray[2] = 10.0f; 这是错误的因为数据类型不对

intArray[2] = 10; 这是正确的


Array类型的数组

因为Array类是抽象类,所以不能被实例化,但是Array类有一个方法是我们能够创建Array类型的数组


CreateInstance();方法的参数是 一个Type类型和一个int类型,分别表示了数组的类型和数组的长度。

Array arr = Array.CreateInstance (typeof(int), 5);

以上代码就是创建了一个 长度为5的int类型的数组。

arr.SetValue (1, 0);

这是在数组中插入元素的方法第一个参数是数组元素,第二个参数是数组的位置,也就是下标。


遍历数组

for (int i = 0; i < 3; i++) {

Console.WriteLine (a.GetValue(i));//该方法获取下标为i的数组

}


ArraySegment<T>




int[] intArray1 = { 1, 2, 3, 4};

int[] intArray2 = { 5, 6, 7, 8 };

var se1 = new ArraySegment[2] {

new ArraySegment(intArray1, 0, 3),

new ArraySegment(intArray2, 3, 1)

   };

   Print (se1);

static void Print(ArraySegment[] segements)

{

foreach (var segement in segements) {

for (int i = segement.Offset; i < segement.Count+segement.Offset; i++) {

Console.WriteLine (segement.Array[i]);

}

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 知识点: 注:int类型默认32位有大小范围 且第一位为符号位 0 为正 1 为负 8.4作业 A:1、风力预警系...
    cGunsNRoses阅读 1,127评论 0 0
  • 数组:相同数据类型的成员组成的一组数据; 方便管理 ;一个数组里只能存放一个类型的值; 注:数组必须进行初始化赋值...
    cGunsNRoses阅读 1,606评论 0 0
  • 1. [C#语言基础]请简述拆箱和装箱。 答: 装箱操作: 值类型隐式转换为object类型或由此值类型实现的任何...
    胤醚貔貅阅读 4,927评论 1 29
  • 最基本数组数组的定义:存储相同数据类型的集合定义一个长度为4的整形数组,这个数组只可以村整形数据第一种写法:动态分...
    Unity开发阅读 668评论 0 0
  • 整个春节,我都在深圳度过。 在大家讨论城市里究竟有没有年味的时候,我与我的家人安静厮磨。在我看来,跟自己喜爱的亲人...
    勇猛十三娘阅读 796评论 0 1