public class Tools{
public string Name{get ;set;}
} #region 0.1ArrayList集合
////告诉内存,我要存储内容
//ArrayList list = new ArrayList();
////方法 Add方法
//list.Add("李小龙");
//list.Add("成龙");
//list.Add("甄子丹");
////0.1打印出每个人的名称
//foreach (Object item in list)
//{
// Console.WriteLine("姓名为:~~~~~~~~~~~~~~~~~~" + item + "~~~~~~~~~~~~~~~~~");
//} ////0.2单独获取信息
//Console.WriteLine("单独获取信息:" + list[1]); ////0.3删除
//list.Remove("李小龙");
//Console.WriteLine("_______________删除后__________________");
//foreach (Object item in list)
//{
// Console.WriteLine("姓名为:~~~~~~~~~~~~~~~~~~" + item + "~~~~~~~~~~~~~~~~~");
//} ////0.4添加
//Console.WriteLine("添加");
//list.Add("李小龙");
//Console.WriteLine("!!!!!!!!!!!!!!添加!!!!!!!!!!!!!!!!!!!!!");
//foreach (Object item in list)
//{
// Console.WriteLine("姓名为:~~~~~~~~~~~~~~~~~~" + item + "~~~~~~~~~~~~~~~~~");
//} ////0.5添加 Add向后追加
//Console.WriteLine("向后追加");
//list.Insert(1, "李谦");
//Console.WriteLine("!!!!!!!!!!!!!!向后追加!!!!!!!!!!!!!!!!!!!!!");
//foreach (Object item in list)
//{
// Console.WriteLine("姓名为:~~~~~~~~~~~~~~~~~~" + item + "~~~~~~~~~~~~~~~~~");
//} ////0.6判断李小龙是否在名称为list中
//bool flag = list.Contains("李小龙");
//Console.WriteLine(flag); ////修改 "李谦" 为 "刘谦"
////数组中元素个数用XX.Length 集合元素用XX.count
//for (int i = 0; i < list.Count; i++)
//{
// if (list.Contains("李谦"))
// {
// //存在 就修改
// if (list[i].Equals("李谦"))
// {
// list[i] = "刘谦";
// break; // }
// }
// else
// {
// Console.WriteLine("没有该人,如何修改!!");
// }
//}
//Console.WriteLine("!!!!!!!!!!!!!!修改后!!!!!!!!!!!!!!!!!!!!!");
//foreach (Object item in list)
//{
// Console.WriteLine("姓名为:~~~~~~~~~~~~~~~~~~" + item + "~~~~~~~~~~~~~~~~~");
//} //方法二 // //ArrayList list = new ArrayList();
// Tools p1 = new Tools();
// p1.Name = "六道神君";
// Tools p2 = new Tools(); ;
// p2.Name = "天使神茫";
// Tools p3 = new Tools();
// p3.Name = "魔君"; // list.Add(p1);
// list.Add(p2);
// list.Add(p3); // Tools p4 = new Tools();
// p4.Name = "邪神";
// // list.Add(p4); //按顺序排列
// list.Insert(0, p4);//下标定到0 // //遍历集合中所有的元素
// foreach (Tools person in list)
// {
// Console.WriteLine(person.Name);
// }
// Console.WriteLine("-------------------------------删除后--------------------------"); //// 判断所
// if (list.Contains(p4))
// {
// list.RemoveAt(0);//下标
// // list.Remove(p4);//实际存在
// }
// else
// {
// Console.WriteLine("-------------数据不存在-----------");
// } // foreach (Tools person in list)
// {
// Console.WriteLine(person.Name);
// } Hashtable table=new Hashtable();
Person p1=new Person();
p1.Name = "李连杰";
Person p2 = new Person();
p2.Name = "巩俐"; Person p3 = new Person();
p3.Name = "张靓颖";
table.Add("", p1);
table.Add("", p2);
table.Add("", p3);
//遍历HashTable三种方案
/*
* 无论是java还是C#,引用类型对象都会自动调用它的ToString()
ToString()命名空间.类名
*/
//方式一:通过key获取key和value
foreach (string key in table.Keys)
{
//通过key获取value
Console.WriteLine("key是{0}\tvalue是{1}", key, ((Person) table[key]).Name);
}
Console.WriteLine("===========================");
//方式二:只获取value
foreach (Object value in table.Values)
{
Console.WriteLine(((Person)value).Name);
}
Console.WriteLine("===================================");
//方式三:key和value同时遍历 key+value
foreach (DictionaryEntry item in table)
{
Console.WriteLine("key是{0}\tvalue是{1}",item.Key,((Person)item.Value).Name);
}
//删除 Remove()
// table.Remove("001");
//修改 咱们修改“002” key对应value值得name属性为“大美丽”
//先判断 是否存在某个key
if (table.ContainsKey("")) //存在该key
{
Person p = (Person) table[""];
p.Name = "大美丽";
}
Console.WriteLine("==========修改后==========");
//方式三:key和value同时遍历 key+value
foreach (DictionaryEntry item in table)
{
Console.WriteLine("key是{0}\tvalue是{1}", item.Key, ((Person)item.Value).Name);
} //Console.WriteLine("==========删除后==========");
////方式三:key和value同时遍历 key+value
//foreach (DictionaryEntry item in table)
//{
// Console.WriteLine("key是{0}\tvalue是{1}", item.Key, ((Person)item.Value).Name);
//} Console.ReadLine();
#endregion

ArrayList和Hashtable的更多相关文章

  1. ArrayList、HashTable、List、Dictionary的演化及如何选择使用

    在C#中,数组由于是固定长度的,所以常常不能满足我们开发的需求. 由于这种限制不方便,所以出现了ArrayList. ArrayList.List<T> ArrayList是可变长数组,你 ...

  2. 类 Array Arraylist List Hashtable Dictionary

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

  3. 利用ArrayList对Hashtable其进行排序

    前言: 最近在使用Hashtable的时候发现一个问题:就是当你对Hashtable进行遍历的时候整个输出结果是毫无顺序的, 上网查了一下说是Hashtable有自己内部的排序机制,如果要自定义排序的 ...

  4. C#中集合ArrayList与Hashtable的使用

    C#中集合ArrayList与Hashtable的使用 http://blog.csdn.net/linukey/article/details/42506819 ArrayList: 一. 注意事项 ...

  5. c#重点[集合类型]异常,数组,集合ArrayList,List<>,hashTable,hashtable泛型(Dictionary)

    1.foreach[对一些数组或集合进行遍历] foreach(类型 变量名 in 集合对象){语句体} //定义一个数组 ,,,,, }; foreach(var i in sNum1) { Con ...

  6. ArrayList,Hashtable,List<T>,Dictionary<K,V>

    1.ArrayList ArrayList list = new ArrayList(); //for遍历 ; i < list.Count; i++) { SE se=(SE)list[i]; ...

  7. C#中Dictionary、ArrayList、Hashtable和Array的区别

    IDictionary接口是所有字典类集合的基本接口,该接口与ICollection,IEnumerable接口是所有非泛型类集合的最基本的接口 IEnumerable接口用于公开枚举数,该枚举数支持 ...

  8. 第三章泛型集合ArrayList 和Hashtable

    第三章泛型集集合 ArrayList 变量名 = new ArrayList();  //相当与一个容器 他的执行using 是  using System.Collections; 变量名.ADD( ...

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

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

随机推荐

  1. [Xamarin.Android] 自定义控件

    [Xamarin.Android] 自定义控件 前言 软件项目开发的过程中,免不了遇到一些无法使用内建控件就能满足的客户需求,例如:时速表.折线图...等等.这时开发人员可以透过自定义控件的方式,为项 ...

  2. 人人都应该学习Markdown

    Markdown是一门新兴的标记语言,已经有12年历史了.随着它在全球范围内的流行,很多人已经听说.熟识或者开始使用了. 首先,Markdown既不是工具,也不是程序语言,而是一种十分轻量级的标记语言 ...

  3. JS写返回上一级

    应产品需求,自己的网站上要有返回上一级的需求,几经周折,做个小总结. (1): $("XX").on("click",function(){      wind ...

  4. touch触摸事件

    事件对象 事件对象是用来记录一些事件发生时的相关信息的对象.事件对象只有事件发生时才会产生,并且只能是事件处理函数内部访问,在所有事件处理函数运行结束后,事件对象就被销毁! W3C DOM把事件对象作 ...

  5. Android破解之北斗手机定位系统

    我想破解GIS相关的安卓程序,于是找到了这个北斗手机定位系统,且不论它是否能定位,定位精度有多高,本文件只进行破解分析. 在模拟器中安装,输入手机号码,点击"卫星定位",它会一级一 ...

  6. Atitit.图片木马的原理与防范 attilax 总结

    Atitit.图片木马的原理与防范 attilax 总结 1.1. 像图片的木马桌面程序1 1.2. Web 服务端图片木马1 1.3. 利用了Windows的漏洞1 1.4. 这些漏洞不止Windo ...

  7. JAVA基础学习day27--反射机制

    一.概述 1.1.概述 反射的概念: 在Java中的反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法; 对于任意一个对象,都能够调用它的任意一个方法; 这种动态获取信息以及动 ...

  8. iOS Block(一)

    Block使用总结: 1.格式: ReturnType (^ BlockName)(参数…); //例: int (^ BFunc) (int a, int b); 2.block赋值: block名 ...

  9. [android] 手机卫士自定义对话框布局

    手机防盗页面部分 点击手机防盗,进行判断,如果没有设置密码,显示一个设置密码的对话框,如果已经设置密码了,弹出输入密码对话框 密码保存在SharedPreferences中,数据取出进行判断 自定义一 ...

  10. OOD沉思录 --- 类和对象的关系 --- 包含关系2

    4.6 尽量让类中定义的每个方法尽可能多地使用包含的对象(即数据成员) 这其实就是高内聚的翻版强调.如果每个类的情况并非如此,那很可能是这一个类表示了两个或更多的概念,记住一个类只应该表示一个概念. ...