1 array 数组  是存储相同类型元素的固定大小的数据的顺序集合。在内存中是连续存储的,所以索引速度非常快,而且赋值和修改元素也非常简单。

//定义字符串数组 大小为3
string[] str1 = new string[3];
str1[0] = "1";
str1[1] = "2";
str1[2] = "3";
//第二种赋值方式
string[] str2 = new string[] {"1","2","3" };
//第三种赋值方式
string[] str3 = { "1","2","3"};

2 arraylist对象的大小是按照其存储的数据来动态扩充的。声明arraylist对象不需要指定其长度。

//arraylist
ArrayList myal = new ArrayList();
myal.Add("HelloWorld");
myal.Add(12);
myal.Add(45.50);

arraylist可以存储不同类型的数据。装箱、拆箱特别麻烦。 arraylist会把所有插入的数据当做object对象来处理。

3 泛型 lsit<T> 数据类型是安全的,在声明list对象的时候,必须指定list集合内数据的对象类型.

List<string> myl = new List<string>();
myl.Add("123");

4 Dictionary  Dictionary<string, string>是一个泛型

他本身有集合的功能有时候可以把它看成数组

他的结构是这样的:Dictionary<[key], [value]>

他的特点是存入对象是需要与[key]值一一对应的存入该泛型

通过某一个一定的[key]去找到对应的值

举个例子:

//实例化对象

Dictionary<int, string> dic = new Dictionary<int, string>();

//对象打点添加

dic.Add(1, "one");

dic.Add(2, "two");

dic.Add(3, "one");

//提取元素的方法

string a = dic[1];

string b = dic[2];

string c = dic[3];

//1、2、3是键,分别对应“one”“two”“one”

//上面代码中分别把值赋给了a,b,c

//注意,键相当于找到对应值的唯一标识,所以不能重复

//但是值可以重复

list泛型的使用

ArrayList list = new ArrayList();
ArrayList list = new ArrayList(5); //可变数组
list.Add("我"); //Add 添加 向数组中赋值索引为最末尾
list.Add("今年");
list.Add("18");
list.Add("岁了");
list.Add("18");
list.Add("岁了");
list.Add("18");
list.Add("岁了");

知识点
list.Contains();//查询数组中元素是否存在
list.CopyTo(); //赋值数组中的全部数据
list.RemoveAt();//根据索引把指定位置元素删除
list.Remove(); //移除的是元素
list.Clear();//清空数组
list.Count; //数组元素的个数

举例子
bool result = list.Contains("我"); //返回bool 查询数组中元素是否存在

string[] list1 = new String[15];
list.CopyTo(list1); //赋值数组中的全部数据 赋值的集合的数据类型要一致

oblect[] list1 = new oblect[15];
list.CopyTo(list1); //赋值数组中的全部数据 赋值的集合的数据类型可以不一致

list.RemoveAt(6); //把第七个元素移除
list.Remove("我"); //移除的是元素

int index=list.Count;
Console.WriteLine(index);

Console.WriteLine(list[6]);

foreach (object val in list)
{
Console.WriteLine(val);
}
Console.ReadKey();
#endregion

#region 泛型集合
List<int> intList=new List<int>(); //List泛型集合 类型是一致的
intList.Add(12);
intList.Add(23);
intList.Add(34);
int result = intList.IndexOf(34);//根据元素,查找返回该元素的索引位置,如果没有,返回-1 可以指定索引范围(34,0,2)

//知识点
intList.Add();//查询数组中元素是否存在
intList.CopyTo(); //赋值数组中的全部数据
intList.RemoveAt();//根据索引把指定位置元素删除
intList.Remove(); //移除的是元素
intList.IndexOf(); //根据元素,查找返回该元素的索引位置,如果没有,返回-1
intList.Insert(1,16);//将元素插入集合某处

//举例子
intList[0] = 15;
intList.Insert(0,16);//将元素插入集合某处 原来索引位置的元素值自动下移,整理向后移动
Console.WriteLine(intList[0]);
Console.ReadKey();
#endregion

#region 泛型数组练习
List<string> arrList=new List<string>();
arrList.Add("张三");
arrList.Add("年龄");
arrList.Add("身高");
arrList.Add("电话号码");
int a = arrList.Count;
string name = "";
for (int i = 0; i < arrList.Count; i++)
{
if(arrList[0].Equals("张三"))
{
arrList[0] += "今年的";
Console.WriteLine(arrList[0]);
}
}
Console.ReadKey();

c# array arraylist 泛型list的更多相关文章

  1. 类 Array Arraylist List Hashtable Dictionary

    总结C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue  我们用的比较多的非泛型集合类主要有 ArrayList类 和 HashT ...

  2. c#中Array,ArrayList 与List<T>的区别、共性与转换

    本文内容来自我写的开源电子书<WoW C#>,现在正在编写中,可以去WOW-Csharp/学习路径总结.md at master · sogeisetsu/WOW-Csharp (gith ...

  3. Array,ArrayList,泛型List比较

    在C#中数组Array,ArrayList,泛型List都能够存储一组对象,但是在开发中根本不知道用哪个性能最高,下面我们慢慢分析分析. 一.数组Array 数组是一个存储相同类型元素的固定大小的顺序 ...

  4. Array,ArrayList、List<T>、HashSet<T>、LinkedList<T>与Dictionary<K,V>

    Array: 数组在C#中最早出现的.在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也很简单. 但是数组存在一些不足的地方.在数组的两个数据间插入数据是很麻烦的,而且在声明数组的时候 ...

  5. [置顶] Array ArrayList LinkList的区别剖析

    这是一个面试中我们经常被问到的问题 Array.ArrayList.LinkList之间的区别:Array.ArrayList.LinkList均属于泛型的范畴,都用来存放元素,主要区别是Array是 ...

  6. C# 集合类 Array,Arraylist,List,Hashtable,Dictionary...

    我们用的比较多的非泛型集合类主要有 ArrayList类 和 HashTable类.我们经常用HashTable 来存储将要写入到数据库或者返回的信息,在这之间要不断的进行类型的转化,增加了系统装箱和 ...

  7. 解析C#中[],List,Array,ArrayList的区别及应用

    [] 是针对特定类型.固定长度的. List 是针对特定类型.任意长度的. Array 是针对任意类型.固定长度的. ArrayList 是针对任意类型.任意长度的. Array 和 ArrayLis ...

  8. .net中的Array,ArrayList和List

    Array:任意类型,定长 ArrayList:任意类型,不定长 List:特定类型,不定长 Array和ArrayList是通过存储object类型实现可以存储任意类型数据,使用时需要拆箱和装箱

  9. Array,ArrayList 和 List<T>的选择和性能比较.

    Array Class Provides methods for creating, manipulating, searching, and sorting arrays, thereby serv ...

随机推荐

  1. JavaScript 获取移动设备的型号

    https://joyqi.com/javascript/how-to-detect-mobile-devices-model-using-javascript.html?utm_source=too ...

  2. 关于 nginx 的配置的 location

    精准匹配和普通匹配:    server{            location =/index.htm{                                       ////精准匹 ...

  3. 判断页面是否被嵌入iframe里面

    最近在做一个项目,是一个小型的后台管理系统,这个系统可以单独打开,也可以嵌入公司大型的后台管理项目里面 这样就存在一个问题,在被嵌入大的后台管理系统后,不用显示该页面顶部导航栏和左侧的菜单栏 所以我们 ...

  4. Linux Shell脚本编程-基础2

    命令退出状态码  bash每个命令,执行状态都有返回值 0表示成功 非0表示失败(1-255) $?特殊变量可以打印出上一条命令的状态返回值 脚本的状态返回值是脚本执行的最后一条命令 自定义脚本状态返 ...

  5. GenIcam标准关键词整理

    1.<?xml> 版本信息和编码方式 IntSwissKnife 需计算和判断的节点 MaskedIntReg 需查询的节点 2.<RegisterDescription> 寄 ...

  6. FastDFS学习总结(1)--FastDFS安装和部署

    FastDFS是一个开源的,高性能的的分布式文件系统,他主要的功能包括:文件存储,同步和访问,设计基于高可用和负载均衡,FastDFS非常适用于基于文件服务的站点,例如图片分享和视频分享网站 Fast ...

  7. Spring 容器(一)

    Source null instanceof Object 语法是正确的 Source定义得到输入流的方法 Resource继承Source,定义判断流是否存在.是否打开等方法 BaseResourc ...

  8. hdu5336XYZ and Drops

    题意:给出r*c的网格,有的网格为空.有的有水.再给出一个爆炸点,从这个点向四周爆出四个水滴,若碰到水则融为一体,若碰到其它水滴直接跑过去互不影响.每秒可跑一格,若水中水滴数量超过4则爆开.问T秒后网 ...

  9. AES加密解密在JAVA和ANDROID下互通

    <span style="font-family: Arial, Helvetica, sans-serif;">昨天外包安卓的那个人说AES的加解密结果不一样.于是百 ...

  10. 学password学一定得学程序

    题目描写叙述 以前.ZYJ同学非常喜欢password学.有一天,他发现了一个非常长非常长的字符串S1.他非常好奇那代表着什么,于是奇妙的WL给了他还有一个字符串S2.可是非常不幸的是,WL忘记跟他说 ...