摘要: 写在前面:此随笔仅仅是作为个人学习总结,有不对的地方,请各位前辈指正O(∩_∩)O........

一: 引入

在学习集合之前我们都学习过数组.可以知道数组的长度在声明的时候就已经被固定了,不可以增加或者修改.这个时候我们想要有数组的效果,又可以随意的改变长度,那怎么办呢?此时我们的集合就出现啦.

在一个集合中我们可以通过Add(),AddRange()方法在集合末尾添加元素.可以通过Remove(),RemoveAt()方法移除元素.如果此时我们获取这个集合的Count属性值,就会发现这个值在不断改变.

二: 为什么

首先我们来了解一下集合里面的两个属性:

Count: 表示当前这个集合内元素的个数  ( Gets the number of elements actually contained in the System.Collections.ArrayList.)

Capacity: 表示当前这个集合可以容纳的元素个数  (Gets or sets the number of elements that the System.Collections.ArrayList can contain.)

怎么说呢?

首先我们声明一个集合:

ArrayList list = new ArrayList();
Console.WriteLine(list.Count);
Console.WriteLine(list.Capacity);

结果为: 0 , 0

给集合添加一个值:

ArrayList list = new ArrayList();
list.Add("abc");
Console.WriteLine(list.Count);
Console.WriteLine(list.Capacity);

结果为: 1 , 4

给集合添加四个值:

(代码略)

结果为: 4 , 4

给集合添加五个值:

(代码略)

结果为: 5 , 8

给集合添加九个值:

结果为: 9 , 16

移除一个值:

结果为: 8 , 8

由此我们可以看到,当我们只声明集合没有赋值的时候,没有可以容纳的个数.但是一旦我们往集合里添加数据,就会存在4个可以容纳的空间,超过4个就会翻倍的去申请.

当我们移除元素的时候,集合可以容纳的数目也会减少

c# 集合的长度为什么是可变的的更多相关文章

  1. 解决问题:怎样在页面获取数组和List集合的长度

    解决问题:怎样在页面获取数组和List集合的长度 我们在前端遍历后台数据的时候,经常是从后台传过来一个数组或List集合,在前端页面就可以使用JSTL的<c:For each>标签遍历数据 ...

  2. jsp 遍历集合——关于获取集合的长度

    一,关于获取集合长度问题 在jsp页面中不能通过${list.size}取列表长度,而是 EL表达式不能获取集合的长度 如:${list.size} <%@ taglib uri="h ...

  3. jsp页面获取集合的长度

      createTime--2016年10月12日16:20:02Author:Marydonjsp页面获取集合的长度 在jsp页面与js中不能通过${list.size}取列表长度,而是引入jstl ...

  4. Jsp中如何在<c:forEach>标签内获取集合的长度

    利用jstl标签functions的prefix属性的length属性值 1.首先在jsp页面导入jstl function标签 <%@ taglib prefix="fn" ...

  5. OC中NSDictionary(字典)、NSMutableDictionary(可变字典)、NSSet(集合)、NSMutableSet(可变集合)得常用方法

    字典用于保存具有映射关系数据的集合 一个key—value对认为是一个条目(entry),字典是存储key—value对的容器 与数组不同,字典靠key存取元素 key不能重复,value必须是对象 ...

  6. java中数组、list、泛型集合的长度

    1 java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性. 2 java中的length()方法是针对字符串String说的,如果想看这 ...

  7. 在JSP页面获取集合的长度

    在jsp页面上经常遇到得到集合长度.字符长度.字符切取等应用需,在2.0以前这种需是许多程序员对JSTL及为不满意的地方之一.为此在2.0 中添加了functions标签,其提供对以上需求的支持. 使 ...

  8. mybatis数组和集合的长度判断及插入

    1.在使用foreach的是collection属性,该属性是必须指定的,但是在不同情况下,该属性的值是不一样的,主要有一下4种情况: 如果传入的是单参数且参数类型是一个List的时候,collect ...

  9. 统计java中字符串,数组,集合大小(长度)

    字符串长度用String.length(); 数组用String[].length; 集合用collection.size();

随机推荐

  1. js前台计算两个日期的间隔时间(时间差)

    在后台传来两个时间字段,从中解析出两个字符串类型的日期格式 需要在前台解析出两个时间的间隔 这里采用获取两个日期的时间戳进行计算 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时 ...

  2. form 组件

    https://www.cnblogs.com/wupeiqi/articles/6144178.html class F2Form(forms.Form): title1=fields.CharFi ...

  3. 配置ssh无密码登陆Linux

    Windows下面的话需要安装git,或者其他能执行shell命令的软件 1.首先要先修改SSH的配置文件 vi /etc/ssh/sshd_config#修改配置文件 #如果被#注释了,就取消#号, ...

  4. C#来操作Word

    创建Word: 插入文字,选择文字,编辑文字的字号.粗细.颜色.下划线等: 设置段落的首行缩进.行距: 设置页面页边距和纸张大小: 设置页眉.页码: 插入图片,设置图片宽高以及给图片添加标题: 插入表 ...

  5. 《剑指offer》两个链表中的第一个公共节点

    本题来自<剑指offer> 反转链表 题目: 思路: C++ Code: Python Code: 总结:

  6. bzoj 3998

    我们分成两种情况来分析这个问题:t=0和t=1 t=1时,每一个子串出现的次数就是他在parent树上所在子树内前缀节点的个数,这一点我们已经说的很清楚了 利用SAM有向无环的性质,我们可以在pare ...

  7. rsync问题

    问题一: rsync: chgrp "/data/www/vhosts/go/.rest.qXYFW5" (in apache) failed: Operation not per ...

  8. jq修改hover样式

    $("#resTree").hover(function(){ $(this).css("background-color","yellow" ...

  9. vmware 虚拟机报错 删除文件夹,可以恢复

  10. ansible的modules

    fetch   :从远端服务器拉取文件到本地 dest 依赖   本地存放拉取到的文件路径, 如果flat=yes,则会在该路径下直接存放文件, 如果flat=no,则会在该路径下生成每个服务器的in ...