数组的制约:局限性。有多少放多少,要想追加,就必须重新再定义一个数组,这就造成了资源的极大浪费而且性能消耗也比较大。因此此操作不太推荐。所以集合就来了。

int[] arr=new[]{,,,}

创建集合:

ArrayList list=new ArrayList();
list.Add();
list.Add();
list.Add();
Console.WriteLine(list.Count);//输出元素个数 3

在原有基础上在追加一个:实现动态添加数据,而避免再次开辟一个资源空间。

ArrayList list=new ArrayList();
list.Add();
list.Add();
list.Add();
Console.WriteLine(list.Count);//输出元素个数 3
list.Add();
Console.WriteLine(list.Count);//输出元素个数 4

集合特点:

特点1.可以伸缩。

取值:和数组一样通过下标

Console.WriteLine(list[]); //输出12
Console.WriteLine(list[]); //输出22
for(var i=;i<list.Length;i++)
{
Console.WriteLine(list[i]); //输出所有元素
}

当然,也可以把object类型放入list中,但是此操作在取值时需要进行拆箱操作,无法直接操作里面的元素,例:

特点2:类型未知

list.Add();
list.Add(12.2);

list.Add("abcd"); foreach(var item in list)
{ Console.WriteLine((int)list[i]); //拆箱操作(解析double和string类型报错)
}

List:1.极力推荐泛型集合,数组的数据类型一致性,集合的可伸缩性

List<int> list=new List<int> //只能存放 int
list.Add();
list.Add();
list.Add();
list.Add();
list.Add();
Console.WriteLine(list.Count); //输出5
foreach(var item in list)
{
//此时不需要进行拆箱操作,因为只有int类型,节省了性能的消耗
Console.WriteLine(list[item])
}
List<string> list=new List<string> //只能存放 string

删除元素本身:Remove,如果要删除的数据类型是数组或者对象,不可以直接删除,须先找到

list.Remove();
list.Remove();
Console.WriteLine(item); //输出 2 3 6

例如:

找到要删除的数据:

根据下标删除:RemoveAt(),特别注意,根据下标进行删除,原有的下标会发生改变

例如:

list.RemoveAt(); //删除下标为0,删除成功,下一个元素的下标将会发生改变
list.RemoveAt();
list.RemoveAt();
list.RemoveAt(0);
list.RemoveAt(0);
console.writeLine(list.Count); //元素全部删除

一旦删除的个数大于集合本身元素个数,就会报索引值超出范围的问题。

list.clear(); //清空所有元素

list.insert();插入值参数1:插入位置的下标,参数2:对应的值

例如:

list.insert(,);

元素排序、降序操作

foreach(var item in list.Order(m=>m))
{
console.WriteLine(list); //升序操作
}; foreach(var item in list.OrderDescending(m=>m))
{
console.WriteLine(list); //降序操作
};
console.WriteLine(list.sum()); //元素总和
console.WriteLine(list.Average()); //元素平均数
console.WriteLine(list.max()); //元素最大值
console.WriteLine(list.min()); //元素最小值
console.WriteLine(list.Count(m=>m%==));//元素中偶数的个数

最新文章

  1. iOS 解压打包静态库命令
  2. tar 打包命令
  3. iTunes Connect突然登录不了的原因
  4. Django学习系列之Form基础
  5. poj 1609 dp
  6. Apache网站服务源码安装与站点部署
  7. LeetCode第[16]题(Java):3Sum Closest 标签:Array
  8. 如何获取自己想要模拟的APP的相关图片?
  9. LFYZ-OJ ID: 1011 hanoi双塔问题
  10. JS功能函数
  11. Day3-1 函数
  12. C# 不安装Oracle客户端情况下,如何连接到Oracle数据库
  13. Sitecore系统教程即时查阅编辑内容
  14. java基础题整理(1)
  15. 算法笔记_221:串的简单处理(Java)
  16. iOS-UIImage变为NSData并进行压缩
  17. css transition transform animation例子讲解
  18. [Python] numpy.Matrix
  19. git的基本命令
  20. 【微信小程序】request请求POST提交数据,记得要加上header

热门文章

  1. 83 项开源视觉 SLAM 方案够你用了吗?
  2. 非常诡异的IIS下由配置文件加上svg的mime头导致整个网站的静态文件访问报错误
  3. Spring中应用的那些设计模式
  4. jsp学习笔记day1
  5. Go语言库系列之aurora
  6. ASP.NET Core单文件和多文件上传并保存到服务端
  7. Dome 多人人脸识别 face_recognition
  8. 模块 os 系统
  9. redis 练习
  10. Three中的动画实现-[three.js]