C# 集合(ArrayList)的方法和使用

简介: C# 集合(ArrayList)的方法和使用

中文意思:

集合和数组的区别?

数组:

只能放同一个类型的数据 ,例如:int 那么只能给他提交int类型的数据,并且长度赋值了就无法改变,比较单一

集合:

可以存放任何类型的数据(继承于object)如int,string等都可以直接添加,他的长度可以任意改变,


Add(添加数据):

集合创建后,如要对他就行赋值,就要使用Add()方法进行添加,

集合可以添加任何类型的数据

ArrayList a = new ArrayList();
  a.Add("小马哥的棺材板"); //字符串类型
  a.Add(20);//整数类型
a.Add(3.14);//double类型
  a.Add('x');//char类型

AddRange(数组数据等):

如果使用上面方法添加数组数据的话,拿到的只是他的命名空间,

ArrayList a = new ArrayList();
int[] b = {10,20,30 };
 a.Add(b);
 //循环出他的长度
for (int i = 0; i <=a.Count-1; i++)
 {
 Console.WriteLine(a[i]);
         }        

如果要添加数组就得使用AddRange()方法

ArrayList a = new ArrayList();
 int[] b = {10,20,30 };
  a.AddRange(b);
  for (int i = 0; i <=a.Count-1; i++) 
  Console.WriteLine(a[i]);        

Count(循环显示集合的内容):

在添加内容后把内容显示出来,如不知道集合长度需要使用Count,

和数组的Length的使用方法一样,只是变了个单词,从0开始记得-1

ArrayList a = new ArrayList();
  a.Add("小马哥的棺材板"); //字符串类型
for (int i = 0; i <=a.Count-1; i++) {
Console.WriteLine(a[i]);        
            }

Remove(删除单个元素):

有添加当然也有删除,下面创建了一个集合添加了20和小马哥,调用Remove()方法把小马哥删除了

ArrayList a = new ArrayList();       
 a.Add(20);//添加
 a.Add("小马哥");//添加
 a.Remove("小马哥");//删除

RemoveAt(按下标删除):

和数组一样0开始的

删除了2,也就是“的棺材板”

RemoveRange(按下标范围删除):

和上面一样只不过是范围, 删除了1到2的内容,

ArrayList a = new ArrayList();
 a.Add(10);
 a.Add(20);
 a.Add("小马哥");
  a.Add("的棺材板");
 a.RemoveRange(1,2);

Clear(清空所有内容):

调用该方法可以清空之前所赋值的内容

ArrayList a = new ArrayList();       
 a.Add(20);
a.Clear();//清除所有内容

集合里添加了一个“20”然后调用了Clear清除了所有内容,现在集合为空

Sort(升序):

可以对集合的内容进行从小到大的排序,但必须是同类型的int或者double才可以进行排序,如有汉字等就会报错

ArrayList a = new ArrayList();
 a.Add(10.1); 
 a.Add(20.5);
 a.Add(5.2);
 a.Add(3.14);
 a.Sort();//使用这个方法排序

Reverse(反转数据):

把所以的顺序返过

如没使用这个方法10.1应该在第一个

ArrayList a = new ArrayList();
a.Add(10.1); 
a.Add(20.5);
a.Add(5.2);
a.Add(3.14);
a.Reverse();

Insert(通过下标插入数据):

在1号下标前面插入了“小马哥” 也就是20.5的前面

ArrayList a = new ArrayList();
 a.Add(10.1); 
 a.Add(20.5);
 a.Add(5.2);  
 a.Add(3.14);
 a.Insert(1,"小马哥");

InsertRange(通过下标插入数组):

和上面的使用方法一样,只不过是数组这些等

ArrayList a = new ArrayList();
   int[] b = { 60, 20, 30, 540, 55 };
 a.Add(10.1); 
  a.Add(20.5);
 a.Add(5.2);
 a.Add(3.14);
 a.InsertRange(1,b);
//在20.5前面插入了b的元素

Contains(是否存在指定内容):

可以判断你指定的内容是否存在

判断3.14是否存在

ArrayList a = new ArrayList();          
a.Add(10.1); 
 a.Add(20.5);
 a.Add(5.2);
a.Add(3.14);
 if (a.Contains(3.14)) {
 Console.WriteLine("我在里面");
 }

练习:

上面说到使用Sort可以进升序(小到大)但是并没有提供降序的方法,可以使用,但是可以使用Reverse(反转)配合Sort也可以达到降序的效果,

ArrayList a = new ArrayList();
a.Add(10.1); 
 a.Add(20.5);
 a.Add(5.2);
a.Add(3.14);
 a.Sort();//从小到大排序
  a.Reverse();//反转了就是从大到小

纯手打,点个赞呗~

相关文章
|
4天前
|
Java 物联网 C#
C#/.NET/.NET Core学习路线集合,学习不迷路!
C#/.NET/.NET Core学习路线集合,学习不迷路!
|
2月前
|
开发框架 .NET 程序员
C# 去掉字符串最后一个字符的 4 种方法
在实际业务中,我们经常会遇到在循环中拼接字符串的场景,循环结束之后拼接得到的字符串的最后一个字符往往需要去掉,看看 C# 提供了哪4种方法可以高效去掉字符串的最后一个字符
282 0
|
2月前
|
存储 C# 索引
C# 一分钟浅谈:数组与集合类的基本操作
【9月更文挑战第1天】本文详细介绍了C#中数组和集合类的基本操作,包括创建、访问、遍历及常见问题的解决方法。数组适用于固定长度的数据存储,而集合类如`List<T>`则提供了动态扩展的能力。文章通过示例代码展示了如何处理索引越界、数组长度不可变及集合容量不足等问题,并提供了解决方案。掌握这些基础知识可使程序更加高效和清晰。
80 2
|
1月前
|
编译器 C#
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
116 65
|
5月前
|
数据采集 数据可视化 测试技术
C#生成Selenium测试报告:实用方法与技巧
在C#中使用Selenium进行自动化测试时,结合代理IP和ExtentReports能增强测试安全性和报告质量。安装必备工具如Selenium WebDriver、NUnit和ExtentReports。在测试设置中,配置代理(如亿牛云爬虫代理)以隐藏IP,通过ChromeOptions定制UserAgent,并添加Cookie。测试代码示例展示了如何打开网页、执行搜索并生成详细的测试报告。使用ExtentReports可创建可视化测试结果,便于团队分析。
C#生成Selenium测试报告:实用方法与技巧
|
6天前
|
JSON 程序员 C#
使用 C# 比较两个对象是否相等的7个方法总结
比较对象是编程中的一项基本技能,在实际业务中经常碰到,比如在ERP系统中,企业的信息非常重要,每一次更新,都需要比较记录更新前后企业的信息,直接比较通常只能告诉我们它们是否指向同一个内存地址,那我们应该怎么办呢?分享 7 个方法给你!
|
8天前
|
C# UED SEO
C# 异步方法async / await任务超时处理
通过使用 `Task.WhenAny`和 `Task.Delay`方法,您可以在C#中有效地实现异步任务的超时处理机制。这种方法允许您在指定时间内等待任务完成,并在任务超时时采取适当的措施,如抛出异常或执行备用操作。希望本文提供的详细解释和代码示例能帮助您在实际项目中更好地处理异步任务超时问题,提升应用程序的可靠性和用户体验。
27 3
|
1月前
|
开发框架 NoSQL MongoDB
C#/.NET/.NET Core开发实战教程集合
C#/.NET/.NET Core开发实战教程集合
|
1月前
|
存储 C#
【C#】大批量判断文件是否存在的两种方法效率对比
【C#】大批量判断文件是否存在的两种方法效率对比
39 1
|
2月前
|
SQL 开发框架 安全
并发集合与任务并行库:C#中的高效编程实践
在现代软件开发中,多核处理器普及使多线程编程成为提升性能的关键。然而,传统同步模型在高并发下易引发死锁等问题。为此,.NET Framework引入了任务并行库(TPL)和并发集合,简化并发编程并增强代码可维护性。并发集合允许多线程安全访问,如`ConcurrentQueue&lt;T&gt;`和`ConcurrentDictionary&lt;TKey, TValue&gt;`,有效避免数据不一致。TPL则通过`Task`类实现异步操作,提高开发效率。正确使用这些工具可显著提升程序性能,但也需注意任务取消和异常处理等常见问题。
48 1