ArrayList和Hashtable
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的更多相关文章
- ArrayList、HashTable、List、Dictionary的演化及如何选择使用
在C#中,数组由于是固定长度的,所以常常不能满足我们开发的需求. 由于这种限制不方便,所以出现了ArrayList. ArrayList.List<T> ArrayList是可变长数组,你 ...
- 类 Array Arraylist List Hashtable Dictionary
总结C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue 我们用的比较多的非泛型集合类主要有 ArrayList类 和 HashT ...
- 利用ArrayList对Hashtable其进行排序
前言: 最近在使用Hashtable的时候发现一个问题:就是当你对Hashtable进行遍历的时候整个输出结果是毫无顺序的, 上网查了一下说是Hashtable有自己内部的排序机制,如果要自定义排序的 ...
- C#中集合ArrayList与Hashtable的使用
C#中集合ArrayList与Hashtable的使用 http://blog.csdn.net/linukey/article/details/42506819 ArrayList: 一. 注意事项 ...
- c#重点[集合类型]异常,数组,集合ArrayList,List<>,hashTable,hashtable泛型(Dictionary)
1.foreach[对一些数组或集合进行遍历] foreach(类型 变量名 in 集合对象){语句体} //定义一个数组 ,,,,, }; foreach(var i in sNum1) { Con ...
- ArrayList,Hashtable,List<T>,Dictionary<K,V>
1.ArrayList ArrayList list = new ArrayList(); //for遍历 ; i < list.Count; i++) { SE se=(SE)list[i]; ...
- C#中Dictionary、ArrayList、Hashtable和Array的区别
IDictionary接口是所有字典类集合的基本接口,该接口与ICollection,IEnumerable接口是所有非泛型类集合的最基本的接口 IEnumerable接口用于公开枚举数,该枚举数支持 ...
- 第三章泛型集合ArrayList 和Hashtable
第三章泛型集集合 ArrayList 变量名 = new ArrayList(); //相当与一个容器 他的执行using 是 using System.Collections; 变量名.ADD( ...
- C# 集合类 Array,Arraylist,List,Hashtable,Dictionary...
我们用的比较多的非泛型集合类主要有 ArrayList类 和 HashTable类.我们经常用HashTable 来存储将要写入到数据库或者返回的信息,在这之间要不断的进行类型的转化,增加了系统装箱和 ...
随机推荐
- Dalvik VM和JVM 的比较
dx:dx工具用于将.class字节码(bytecode)转换为Android字节码(保存在.dex文件中)这个字节码文件 是给 Android 的 Java 虚拟机(Dalvik虚拟机)运行用的. ...
- oGrid 介绍如何从 server 取的资料
接着前次 oGrid 初探,其中有介绍如何操作local 资料,本次介绍如何从 server 取的资料. 依照 MVC 架构原理以及一条小龙本身经验来看,一个好的架构,必须要有着分工明确的设计层次,让 ...
- CRUD Operations in MVC4 Using AngularJS and WCF REST Services
Now in this article I will show how to do Create, Retrieve, Update and Delete (CRUD) operations in M ...
- BINARY SEARCH in read table statement
1.for standard table, it must be sorted by search key. 2.for sorted table , binary search is used au ...
- 2015年第4本(英文第3本):Godfather教父
2015年的第4本书,第3本英文书. 书名:Godfather ,中文书名<教父> 作者: Mario Puzo 单词数:17万 词汇量:1万 首万词不重复词数:2200(这个我不太相信) ...
- SparseArray<E>详解
SparseArray<E> 是官方推荐的用来替代 HashMap<Integer, E> 的一个工具类,相比来说有着更好的性能(其核心是折半查找函数(binarySearch ...
- Java.lang.OutOfMemoryError处理
此错误对于新手做项目的时候经常会发生,而且不容易处理 默认情况下,每个android程序的dailvik虚拟机的最大堆空间大小为16M 当加载的图片太多或图片过大时经常出现OOM问题 而出现此类问题最 ...
- 高级iOS面试题
非标准答案 2 1: 类方法是可以直接通过类名直接调用,无需进行实例化对象.类方法是以+开头2. 实例方法,需要显示实例化对象,为对象分配堆栈空间,并通过对象实例调用实例方法3. RUNTIME 是在 ...
- Xcode6.4注册URL Scheme步骤详解
URL Scheme的作用 我们都知道苹果手机中的APP都有一个沙盒,APP就是一个信息孤岛,相互是不可以进行通信的.但是iOS的APP可以注册自己的URL Scheme,URL Scheme是为方便 ...
- [ASP.NET MVC]: - EF框架学习手记
1.EF(Entity Framework)实体框架EF是ADO.NET中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架. 2.什么是ORM?ORM指的是面向对象的对象模型和关系型 ...