ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

集合

2021-06-09 11:04:53  阅读:176  来源: 互联网

标签:arr 下标 对象 ArrayList 元素 集合 SE


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: 什么都可以添加,需要进行装箱折箱操作,影响性能,长度可变
    数组: 长度固定

标签:arr,下标,对象,ArrayList,元素,集合,SE
来源: https://www.cnblogs.com/Alax-LJJ/p/14865958.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有