我是靠谱客的博主 自信汽车,最近开发中收集的这篇文章主要介绍c# 动态数组,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

C#中的数组是可以动态分配长度的,实现动态数组有以下几种途径,这里说的动态数组包括动态分配大小和动态增加数据.
先来看原始数组:
 int m = 5;
 int[] array = newint[m];
 array[0] = 2;
 label1.Text = array[0].ToString() + " + " +array.Length.ToString();
结果的输出自然是 2 + 5;
 
动态分配:
1: m++;
  array = newint[m];//相当于重新初始化,原来的值被冲掉了  
  label2.Text =array[0].ToString() + " + " + array.Length.ToString();
结果输出自然是 0 + 6;
2: m++;
  Array.Resize(ref array,m);
  label2.Text =array[0].ToString() + " + " + array.Length.ToString();
结果输出自然是 2 + 6;
3:再有就是通过ArrayList的方法
 
第1种方案适合能够事先能从某处读出来长度的情况;第2,3种方案最适合在事先不知道数据长度究竟有多少,只能来一个算一个的情况,个人感觉,这才是动态数组真正的用途,也就是能够随着数据的增加而自动扩容。
在这方面ArrayList毫无疑问是首选,能够真正实现这个功能.
ArrayList  al  =   new  ArrayList();
al.Add(
NewData ); // 单个添加
如果增加的是同一类型的数据,用Array.Resize()也是能够实现的:
if(产生了新数据)//增加个判断
{
      m++;//假设数组原来的长度是m
      Array.Resize(ref array,m);
      array[m] = NewData;
}
虽然有同样的效果,但本质上是有差异的.ArrayList是真正的在变长.而 System.Array.Resize这个泛型方法是 重新创建新设置大小的数组,用的是旧数组的元素初始化。随后以前的数组就 废弃!也就是说并不是在原先的基础上扩容,而是新建了一个.但是无论如何在表面上看来确实实现了我们想要的功能.

最后

以上就是自信汽车为你收集整理的c# 动态数组的全部内容,希望文章能够帮你解决c# 动态数组所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部