C#中如何选择使用T[]或List<T>

当有一组数据需要存放,到底是使用T[]呢,还是选择List<T>呢?

先来看数组。

所有的数组类型都隐式地从System.Array这个抽象类派生,而System.Array又派生自System.Object。也就是说数组是引用类型。通过如下方式创建数组:

int[] arrInt = new int[10];

以上,在托管堆上分配了可以容纳10个未装箱int对象所需要的内存块(这个内存块除了容纳数组元素所占的内存,还包括数组元素对象的类型对象指针、同步块索引等额外成员),然后内存块地址被返回并保存到线程栈上的arrInt变量中。

而List<T>,实际上,在内部也维护着一个数组,只不过这个数组的容量可以动态增加。就像这里说的。

总结:如果数据的容量是动态变化的,需要操作,比如插入或删除元素,就使用List<T>;如果数据的容量是固定的,可以考虑使用T[]。

时间: 2024-11-11 10:35:11

C#中如何选择使用T[]或List<T>的相关文章

php array_rand()函数从数组中随机选择一个或多个元素

php使用array_rand()函数从数组中随机选择一个或多个元素的方法. 使用array_rand() 函数从数组中随机选出一个或多个元素,并返回. array_rand(array,number) 参数 描述 array 必需.规定输入的数组参数. www.jbxue.com number 可选.默认是 1.规定返回多少个随机的元素. 例子: <?php $a=array("a"=>"Dog","b"=>"Cat

STL中慎重选择删除元素的方法

 一.要删除容器中有特定值的所有对象 1.如果容器是vector.string或deque,则使用erase-remove习惯用法.例如: vector<int> c; c.erase(remove(c.begin(),c.end(),1963),c.end());//删除值是1963的元素 下面讲一下算法remove: template<classForwardIterator,class T> ForwardIteratorremove(ForwardIterator fi

Eclipse插件开发中的选择监听机制(Selection Provider-Listener)

Eclipse插件开发中的选择监听机制(Selection Provider-Listener) 监听机制是eclipse插件开发或rcp应用开发中常用的技术,比如点击TableViewer或TreeViewer中的某个元素,需要针对当前selection做出某些处理. 实现方式一般有两种情况,即selection provider 和listener在一个视图中,或在不同的视图中: 1.selection provider自己增加监听进行处理 前者直接让selection provider实现

PPT中如何选择英文字体

在开始探讨如何选择PPT字体的问题前,先说两个不必要再多讨论的关于PPT字体方面的问题: 1.关于PPT经常掉字的问题. 是的,有时候PPT的文本框中会莫名其妙的少一两个字,非要将文本框拉一下才会出现缺少的PPT文字.这个问题我认为最简单的办法就是: 在菜单 设置文本框格式–文本框–选中“自选图形中的文字换行”,就OK了. 2.关于PPT字体打包的问题. 你的机子上有的字体,人家的电脑上未必有,所以如果使用了一些电脑默认没有的字体,就一定要打包,最简便的办法就是: 在菜单–工具–选项–保存–选中

手机游戏开发中如何选择适合的纹理格式

为毛要写这个 本来觉得像这样的问题,是无法归类的,因为不同的项目有不同的需求,但今天因为quick论坛中的一个技术疑问贴,钩起了我整理这篇文章的兴趣 http://www.cocoachina.com/bbs/read.php?tid=214811 于是,我决定尽力描述一下纹理格式选择方面的问题,一是起到一个科普的作用,因为目前没有发现十分完整的讲这方面的文章.二是整理一下自己的思路. 当然,这些东西肯定不是我自己凭空YY出来的,我也是参考了不少文章,也从项目中总结了一些问题.在此先列出一些链接

根据选择的Checkbox动态在表格中列出选择的值

根据选择的Checkbox动态在表格中列出选择的值 <style> p,div,body,td,input,checkbox,button{font-size:9pt;} </style> <script language="vbScript"> function vbtrim(str) vbtrim=trim(str) end function function vbisnumeric(iVar) vbisnumeric=not isnumeric

3D虚拟环境中的选择技术分类

我们在3D虚拟环境(Virtual Environment, VE)中需要完成的操作有3种:选择物体,操纵(改变)物体,漫游.这里来总结一下3D VE中的选择技术的种类.本文根据Argelaguet和Andujar于2013年发表的survey1,以及相关文献总结. Ryan,Kopper和Bowan提出的分类2(以用户指出物体的方式分类) 1. Virtual Hand 虚拟手 像现实中一样,用虚拟手来接触VE中的物体来做选择. 2. Pointing 隔空指物 不直接接触物体,隔空指物来做选

python random 从集合中随机选择元素

使用python random模块的choice方法随机选择某个元素 from random import choice foo = ['a', 'b', 'c', 'd', 'e'] print (choice(foo)) 使用python random模块的sample函数从列表中随机选择一组元素 list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] slice = random.sample(list, 5) #从list中随机获取5个元素,作为一个片断返回 pri

MySQL中各种数据类型的长度及在开发中如何选择

接触MySQL这个数据库大概快要两年了,不过由于没有特别深入系统的去学习,大多也是停留在一知半解的状态.今天在工作中刚好碰到了表设计的问题,顺便写篇博客,把MySQL中数据类型和字段类型选择这方面给弄清楚. MySQL中的数据类型大体分为三大类,数值类型,时间日期类型以及字符串类型.下面将对这三种类型进行详细的介绍. 一.数值类型 MySQL 支持所有标准SQL 中的数值类型,其中包括严格数值类型(INTEGER.SMALLINT.DECIMAL 和NUMERIC),以及近似数值数据类型(FLO

cocos2dx2.2.2登录场景中Checkbox选择框的实现

在前两篇文章中,我们介绍了在注册场景中需要用到的输入框及弹出框的实现方式,这两篇文章中介绍的内容在登录场景同样会用到.而我们经常会在登录场景中见到的另一种元素就是自动登录或者记住密码的Checkbox选择框.那么,接下来就让我们看看这个选择框如何实现. 首先,我们先看一下效果 我们需要的就是一个Checkbox选择框,后面加上“自动登录”或者其他的文字.效果就是点击选择框或文字时,Checkbox的状态会进行切换:同时在程序中还要知道当前选择框的状态,只要我们能够实现这几点,这个功能就完成了.