集合

Posted on   夜雨初凉  阅读(24)  评论(0编辑  收藏  举报

ArrayList

1.引用命名空间:using System.Collections;
2.语法:ArrayList arr= new ArrayList();
3.添加元素:arr.Add(object value) //返回值是int类型,当前添加元素的索引
4.访问单个元素:(类型)arr[下标] //按指定索引(下标)取得对象
5.遍历:

  //通过索引遍历
   	for (int i = 0; i < arr.Count; i++)
  {
      	SE seFor = (SE)arr[i];
  }
  //通过对象遍历
      foreach (Object obj in arr)
  {
       	SE seForeach = (SE)obj;
  }

6.删除:

	//删除指定对象名的对象
	arr.Remove(对象名)  
	//删除指定索引的对象 
	arr.RemoveAt(index) 
	//清除集合内的所有元素
	arr.Clear()                

集合初始化器

在声明集合时,就进行赋值:

	ArrayList arr= new ArrayList() 
	{ 
        	new SE(){Name = "王小毛",Age = 26,
                     Gender = Gender.male,ID = "000",Popularity = 10},
        	new SE(){Name = "周新雨",Age = 22,
                     Gender = Gender.female,ID = "111",Popularity = 20},
        	new SE(){Name = "张烨",Age = 30,
                     Gender = Gender.male,ID = "222",Popularity = 20}
	};

List<类型> :泛型集合

  1. 引用命名空间:using System.Collections.Generic;
  2. List<> : <> 标签 T: Type 类型
  3. 语法:List<> 对象名 = new List();
  4. 添加元素
    a> 对象名.Add(值); //一个一个进行添加
    b> 对象名.AddRange( 集合 );//一次性添加多个
  5. 集合元素个数
    对象名.Count;//集合个数
  6. 访问元素的方式
    通过下标进行访问,与数组访问一样
    对象名[下标];
  7. 判断元素中是否包含指定值
     bool isHave = 对象名.Contains(值);
	 
     if( isHave)
     { 包含 }
  1. 遍历元素
     for (int i = 0; i < arr.Count; i++)
     {
        arr[i];
     }
     foreach(<List中的数据类型> item in 集合对象名)
     {
        ......
     }

相对ArrayList无需类型转换

  1. 删除元素
    //1. 清空所有
       对象名.Clear();
    //2. 删除指定值的元素
       对象名.Remove(值);
    //3. 根据下标删除元素
       对象名.RemoveAt(下标);
    //4. 根据指定下标开始,删除指定数量的元素
       对象名.RemoveRange(开始下标,删除个数);

集合对比:

集合 数组 ArrayList List
长度 固定 可变 可变
添加 不能添加 Add()/AddRange() Add()/AddRange()
修改 数组[下标] 下标 下标
删除 不能 Remove()/RemoveAt() Remove()/RemoveAt()
插入 不能 Insert()/InsertAt() Insert()/InsertAt()

注:

  • List: 在添加数据时有数据判断,只能添加指定类型的数据,长度可变
  • ArrayList: 什么都可以添加,需要进行装箱折箱操作,影响性能,长度可变
    数组: 长度固定
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~

随笔 - 51, 文章 - 0, 评论 - 0, 阅读 - 10758

Copyright © 2025 夜雨初凉
Powered by .NET 9.0 on Kubernetes

点击右上角即可分享
微信分享提示