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 来存储将要写入到数据库或者返回的信息,在这之间要不断的进行类型的转化,增加了系统装箱和 ...
随机推荐
- restful架构的理解
资源的表现层状态转化. 简单的理解即: 1 URI对应一种"资源". 2 客户端与服务端传输资源的某种"表现层". 3 客户端通过HTT ...
- inner Join on 随随随随随便一记
幼儿园大班生(随便的记一记) JOIN 分为:内连接(INNER JOIN).外连接(OUTER JOIN).其中,外连接分为:左外连接( ...
- 美丽的阴影(剖析jquery主页)
jquery Download API Documentation Blog Plugins Browser Support jquery主页第一眼看到的就是这个玻璃渣效果,设计者利用高光和阴影制造出 ...
- linq 动态组合条件
http://www.albahari.com/nutshell/predicatebuilder.aspx Dynamically Composing Expression Predicates S ...
- 【读书笔记】iOS-编码对象
Cocoa具备一种机制来将对象自身转换为某种格式并保存到磁盘中.对象可以将它们的实例变量和其他数据编码为数据块,然后保存到磁盘中.以后将这些数据块读回到内存中,并且还能基于保存的数据创建新对象.这个过 ...
- OC语言-06-OC语言-block与protocol
一.block 1> 基本使用 相当于用来存放代码的代码块 效率高 若没有形参可以省略小括号 2> block与函数的相同点 可以保存代码 可以有返回值 可以有形参 调用方式一样 3> ...
- 苹果Mac隐藏壁纸在哪里?Mac隐藏壁纸查找教程
Mac隐藏壁纸怎么查找?Mac存不存在隐藏壁纸呢?今天小编就来解决大家的疑问,告诉大家怎么把Mac系统的隐藏壁纸找出来,并且弄能够正常的使用,小编特意写了一个详细的图文教程叫大家如何查找,使用Mac隐 ...
- 从1.5k到18k, 一个程序员的5年成长之路
昨天收到了心仪企业的口头offer, 回首当初什么都不会开始学编程, 到现在恰好五年. 整天在社区晃悠, 看了不少的总结, 在这个时间点, 我也写一份自己的总结吧. 我一直在社区分享, 所以, 这篇总 ...
- 窗体DataGridView控件中按回车键时,单元格向下移动,如何能改成向右移动
方法一:protected override void OnKeyUp(System.Windows.Forms.KeyEventArgs e) { base.OnKeyUp(e); if (e.Ke ...
- Uploadify文件上传
一.简介 Uploadify 是一种基于html5 或 flash的多文件上传的jQuery插件.Uploadify可以支持多种定制.它是一种异步的文件上传插件.下载网站为http://www.upl ...