10、C#基础整理(集合)

集合

1、集合的引用

using System.Collections;//添加类

2、定义集合(ArrayList 或 Array)

ArrayList arr = new ArrayList();

3、添加数据(可以放多种不同数据类型,但最好只放一种)

(一)单个数据

方法1:add增加

arr.Add(3);
arr.Add(5);
arr.Add("hello");

输出结果:

Console.WriteLine("add[0]:"+arr[0]); //通过添加元素的先后顺序生成从0开始的索引,通过索引读取数据,输出结果为"3"
Console.WriteLine("add[1]:" + arr[1]);//5
Console.WriteLine("add[2]:"+arr[2]);//hello

方法2:insert插入,使从索引所示的数据开始的数据向后移动一位

arr.Insert(1, 17);//Insert(索引,插入的数据)

输出结果:

Console.WriteLine("insert[0]"+arr[0]);//3
Console.WriteLine("insert[1]" + arr[1]);//17
Console.WriteLine("insert[2]" + arr[2]);//5
Console.WriteLine("insert[3]" + arr[3]);//hello

(二)数组:

1、追加一组数据addrange

int[] shuzu = new int[3] { 6, 7, 8 };
arr.AddRange(shuzu);

遍历:

foreach (object o in arr)//因为集合中可能会有多种数据,所以要用object(基类)进行遍历,所有类型都可以转化为这个类型
{
Console.WriteLine("遍历1:" + o);
}

2、从指定索引开始插入一组数据InsertRange

arr.InsertRange(2, shuzu);
//遍历
foreach (object o in arr)
{
Console.WriteLine("遍历2:" + o);
}

4、移除数据:(只移除第一个匹配项)

(一)移除指定数据(值):Remove

arr.Remove(17);//移除值为17的数据
foreach (object o in arr)
{
Console.WriteLine("Remove后:" + o);
}

(二)移除指定索引位置的元素:RemoveAt

arr.RemoveAt(2);
Console.WriteLine("Remove后索引为[3]的数据:"+arr[3]);

5、排序:

(1)sort:自动按升序排列

ArrayList arr1 = new ArrayList();
for (int i = 0; i < 5; i++)
{
arr1.Add(int.Parse(Console.ReadLine()));
}
arr1.Sort();
foreach (object o in arr1)
{
Console.WriteLine("升序sort:"+o);
}

(2)Reverse:翻转集合的排序(使其变为降序)

arr1.Reverse();
foreach (object o in arr1)
{
Console.WriteLine("翻转reverse后降序:"+o);
}

6、集合的属性:

count:返回集合里面有多少元素

Console.WriteLine("元素个数为:" + arr1.Count);

7、返回索引IndexOf

Console.WriteLine("hello所在的索引为:"+arr.IndexOf("hello"));//只返回第一个匹配项所在的索引
Console.WriteLine("hello所在的最后一个匹配项所在的索引为:" + arr.LastIndexOf("hello"));//返回最后一个匹配项所在的索引

**插入的数组索引也是按单个数据排列的,如:插入一组三个数的数组,会建立三个索引。

8、contains:判断是否有某个元素,返回bool值

arr.Contains(1);

9、清空集合

arr.Clear();

时间: 2024-08-10 00:05:21

10、C#基础整理(集合)的相关文章

程序员必须知道的10大基础实用算法及其讲解

程序员必须知道的10大基础实用算法及其讲解 原文出处: cricode 算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比 较,但这种状况并不常见.事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构 上很有效率地被实现出来. 快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子

程序员必知的10大基础实用算法

    算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2) 次比较,但这种状况并不常见.事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的 架构上很有效率地被实现出来. 快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists). 算法步骤: 1 从数列中挑出一个元

java基础之集合List-ArrayList、LinkedList、Vector的区别

PS:本篇博客主要参考jdk的底层源码,而非自己动手写代码. 请问ArrayList.LinkedList.Vector的区别 ①ArrayList底层实际上是采用数组实现的(并且该数组的类型的Object类型的) ②如果jdk6,采用Array.copyOf()方法来生成一个新的数组,如果是jdk5,采用的是System.arraycopy()方法(当添加的数据量大于数组的长度时候) ③List list = newArrayList()时,底层会生成一个长度为10的数组来存放对象 ④Arra

前端重点整理集合

一.XHTML+CSS重点 一.各浏览器兼容问题和解决方法 1.3px的Bug:ie6下一个容器的浮动和文字之间会产生3px的间距, 解决方法:给浮动的盒子添加一个margin-right:-3px;(与浮动方向反方向). 2.浮动双边距Bug:当一个盒子像左浮动的同时有一个向左的margin-left的时候,IE6解析这段代码时就会把margin-left解析为原来的2倍,这个就是所谓的浮动双边距BUG. 解决方法:浮动盒子添加属性display:inline;将浮动盒子属性改为内联,或单使用

《转》程序员必须知道的10大基础实用算法及其讲解

来源: Cricode  发布时间: 2014-06-19 08:27  阅读: 2018 次  推荐: 8   原文链接   [收藏] 算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序n个项目要Ο(nlogn)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见.事实上,快速排序通常明显比其他Ο(nlogn)算法更快,因为它的内部循环(innerloop)可以在大部分的架构上很有效率地被实现出来. 快速排序使用分治法(Divideandconque

linux基础整理0316

一.linux基础整理 由于这是学习linux的第一周,整理的东西很杂很分散,其中包括了查看虚拟机的各种信息,命令相关的只整理了alias.date.history.cal.帮助会话screen等命令的使用,最后加上了两个常见问题处理办法:在以后的学习中会不断完善文中整理的相关内容. 1.查看系统信息类命令: 查看内核版本 [root@CentOS7 ~]#uname -r 3.10.0-957.el7.x86_64 查看系统版本 查看配置文件 [root@CentOS7 ~]#cat /etc

堆排序算法---《程序员必须知道的10大基础实用算法及其讲解》

> 原帖地址:http://www.oschina.net/question/1397765_159365 快速排序算法的基本特性: 时间复杂度:O(N * logN) 堆排序为不稳定排序,不适合记录较少的排序. var arr = [], count = 100, i = 0, parentIndex, exeCount = 0, startTime = + new Date(), stackSort = function(a){ if(a.length === 1) return a; va

HTML基础整理(一)

HTLM基础整理--思维导图(标签部分) 其他: <sub>下标</sub>     <sup>上标</sup> 优先级,越往后优先级越高. "right"(右对齐)               "top" (顶部) 对齐方式<tr align="center"(居中) valign="middle"(居中) "left"(左对齐)          

黑马程序员——【Java基础】——集合框架

一.集合框架概述 (一)集合框架中集合类关系简化图 (二)为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是用于存储对象的. (三)数组和集合类同是容器,有何不同? .数组长度是固定的:集合长度是可变的. 2.数组中可以存储基本数据类型,集合只能存储对象. (四)集合类的特点 集合可以存储不同类型的对象.集合只用于存储对象,集合长度是可变的. (五)为什么会出现这么多容器? 因为每一个容器对数据的存储方式都有不同,这个存储方式称

Python&lt;10&gt;文件基础

常见的文件操作 output = open('data','w')       #创建文件 w为写入 input = open('data','r')        #r为读写 若不写属性  默认为r aString = input.read()          #读整个文件到一个字符串 aString = input.readlines()      #读整个文件到字符串列表 aString = input.read(N)         #读N个字节 aString =input.read