摘要: 写在前面:此随笔仅仅是作为个人学习总结,有不对的地方,请各位前辈指正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. Scrapy+Scrapy-redis+Scrapyd+Gerapy 分布式爬虫框架整合

    简介:给正在学习的小伙伴们分享一下自己的感悟,如有理解不正确的地方,望指出,感谢~ 首先介绍一下这个标题吧~ 1. Scrapy:是一个基于Twisted的异步IO框架,有了这个框架,我们就不需要等待 ...

  2. Linux环境 tp5.1 Could not open input file: think

    服务器命令行执行:php /项目目录/think queue:listen  报如下错误 初步分析是 queue:listen 在代码中要重启一个work进程,用到了think ,导致找不到该文件的路 ...

  3. JavaScript定时器详解

    假设有以下场景 setTimeout(function timeoutHandler(){ /*Some timeout handle code that runs for 6ms*/ }, 10); ...

  4. Beta答辩总结

    组员名单 短学号 姓名 备注 409 后敬甲 组长 301 蔡文斌 315 黄靖茹 423 刘浩 317 黄泽 328 卢泽明 617 葛亮 344 张杰 348 朱跃安 链接汇总 组长博客:后敬甲 ...

  5. 【medium】990. Satisfiability of Equality Equations 并查集

    Given an array equations of strings that represent relationships between variables, each string equa ...

  6. Elasticsearch一些使用笔记(持续更新)

    这篇博客记录这一些运维ES的一些经验. 1.节点磁盘使用率过高,导致ES集群shard无法分配,丢失数据? 有两个配置,分配副本的时候 参数名称 默认值 含义 cluster.routing.allo ...

  7. 一篇文章搞懂Android组件化

    网上组件化的文章很多,我本人学习组建化的过程也借鉴了网上先辈们的文章.但大多数文章都从底层的细枝末节开始讲述,由下而上给人一种这门技术“博大精深”望而生畏的感觉.而我写这篇文章的初衷就是由上而下,希望 ...

  8. sqlite3 学习

    安装sqlite: [ sqlite]$ wget http://www.sqlite.org/sqlite-3.6.16.tar.gz[ sqlite]$ tar -xzvf sqlite-3.6. ...

  9. STM32F0使用LL库实现SHT70通讯

    在本次项目中,限于空间要求我们选用了STM32F030F4作为控制芯片.这款MCU不但封装紧凑,而且自带的Flash空间也非常有限,所以我们选择了LL库实现.本篇我们将基于LL库采用模拟I2C接口的方 ...

  10. inotify+rsync文件实时同步报错:usr/local/bin/inotifywait: error while loading shared libraries: libinotifytools.so.0:

    解决办法: ln -sv /usr/local/lib/libinotify* /usr/lib/ /usr/lib64/libinotifytools.so.