ASP.NET中有四种集合类型:ArrayList,HashTable,SortedList,Stack,在使用之前需引用命名空间using System.Collections;
ArrayList:不固定大小的对象组合,按照索引来访问;
HashTable:键值对的集合,根据键的哈希代码 进行组织,按照键来访问;
SortedList:键值对的集合,存入的元素会自动按照键进行排序,可以按照索引或者键来访问;
Stack:后进先出的对象集合。
对于ArrayList集合:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace ArrayLists
{
class ArrayListHelper
{
private ArrayList list;
public ArrayList List
{
get { return list; }
set { list = value; }
}
/// <summary>
/// 构造函数
/// </summary>
public ArrayListHelper()
{
list=new ArrayList();
Console.WriteLine("-----------ArrayList---------");
}
/// <summary>
/// 添加一个元素
/// </summary>
/// <param name="o"></param>
public void Add(object o)
{
list.Add(o);
Console.WriteLine("加入/t元素:{0}",o);
}
/// <summary>
/// 删除一个元素
/// </summary>
/// <param name="o"></param>
public void Remove(object o)
{
list.Remove(o);
Console.WriteLine("删除/t元素:{0}", o);
}
public void RemoveAt(int i)
{
list.RemoveAt(i);
Console.WriteLine("删除/t第{0}个元素",i+1);
}
/// <summary>
/// 根据索引号得到一个元素
/// </summary>
/// <param name="i"></param>
public void GetValue(int i)
{
Console.WriteLine(string.Format("取值/t第{0}个元素的值:{1}",i+1,list[i]));
}
/// <summary>
/// 使用foreach进行遍历,其实使用for也可以
/// </summary>
public void GetValues()
{
Console.WriteLine("遍历");
for (int i = 0; i < list.Count; i++)
//foreach (int i in list)
{
Console.WriteLine(string.Format("取值/t第{0}个元素的值:{1}", i + 1, list[i]));
}
}
public void GetInfo()
{
Console.WriteLine(string.Format("信息/t元素总数:{0}/t可包含元素总数:{1}",list.Count,list.Capacity));
}
public void Sort()
{
list.Sort();
Console.WriteLine("排序");
}
static void Main(string[] args)
{
ArrayListHelper alh = new ArrayListHelper();
//增加三个元素
alh.Add("C");
alh.Add("B");
alh.Add("A");
//输出信息
alh.GetInfo();
//获取第一个元素
alh.GetValue(0);
//移除元素A
alh.Remove("A");
//遍历ArrayList
alh.GetValues();
//排序
alh.Sort();
//遍历ArrayList
alh.GetValues();
Console.Read();
}
}
}
对于哈希表
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace ArrayLists
{
class ArrayListHelper
{
private ArrayList list;
public ArrayList List
{
get { return list; }
set { list = value; }
}
/// <summary>
/// 构造函数
/// </summary>
public ArrayListHelper()
{
list=new ArrayList();
Console.WriteLine("-----------ArrayList---------");
}
/// <summary>
/// 添加一个元素
/// </summary>
/// <param name="o"></param>
public void Add(object o)
{
list.Add(o);
Console.WriteLine("加入/t元素:{0}",o);
}
/// <summary>
/// 删除一个元素
/// </summary>
/// <param name="o"></param>
public void Remove(object o)
{
list.Remove(o);
Console.WriteLine("删除/t元素:{0}", o);
}
public void RemoveAt(int i)
{
list.RemoveAt(i);
Console.WriteLine("删除/t第{0}个元素",i+1);
}
/// <summary>
/// 根据索引号得到一个元素
/// </summary>
/// <param name="i"></param>
public void GetValue(int i)
{
Console.WriteLine(string.Format("取值/t第{0}个元素的值:{1}",i+1,list[i]));
}
/// <summary>
/// 使用foreach进行遍历,其实使用for也可以
/// </summary>
public void GetValues()
{
Console.WriteLine("遍历");
for (int i = 0; i < list.Count; i++)
//foreach (int i in list)
{
Console.WriteLine(string.Format("取值/t第{0}个元素的值:{1}", i + 1, list[i]));
}
}
public void GetInfo()
{
Console.WriteLine(string.Format("信息/t元素总数:{0}/t可包含元素总数:{1}",list.Count,list.Capacity));
}
public void Sort()
{
list.Sort();
Console.WriteLine("排序");
}
static void Main(string[] args)
{
ArrayListHelper alh = new ArrayListHelper();
//增加三个元素
alh.Add("C");
alh.Add("B");
alh.Add("A");
//输出信息
alh.GetInfo();
//获取第一个元素
alh.GetValue(0);
//移除元素A
alh.Remove("A");
//遍历ArrayList
alh.GetValues();
//排序
alh.Sort();
//遍历ArrayList
alh.GetValues();
Console.Read();
}
}
}
对于SortdeList
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace SortedLists
{
class SortedListHelper
{
private SortedList list;
public SortedList List
{
get { return list; }
set { list = value; }
}
public SortedListHelper()
{
list = new SortedList();
Console.WriteLine("-----------SortedList---------");
}
/// <summary>
/// 添加一个键值对
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
public void Add(object key, object value)
{
list.Add(key,value);
Console.WriteLine(string.Format("加入/t键:{0}/t值:{1}",key,value));
}
/// <summary>
/// 根据键删除一个键值对
/// </summary>
/// <param name="args"></param>
public void Remove(object key)
{
list.Remove(key);
Console.WriteLine(string.Format("删除/t键:{0}",key));
}
/// <summary>
/// 根据索引号删除一个元素
/// </summary>
/// <param name="i"></param>
public void RemoveAt(int i)
{
list.RemoveAt(i);
Console.WriteLine("删除/t第{0}个元素", i + 1);
}
/// <summary>
/// 根据键得到一个键值对
/// </summary>
/// <param name="key"></param>
public void GetValue(object key)
{
Console.WriteLine(string.Format("取值/t键{0}的值:{1}",key,list[key]));
}
/// <summary>
/// 根据索引号得到一个元素
/// </summary>
/// <param name="i"></param>
public void GetValueAt(int i)
{
Console.WriteLine(string.Format("取值/t第{0}个元素/t键:{1}/t值:{2}", i + 1, list.GetKey(i),list.GetByIndex(i)));
}
/// <summary>
/// 使用foreach遍历,每一个键值对是DictionaryEntry类型
/// </summary>
public void GetValues()
{
Console.WriteLine("遍历");
//for (int i = 0; i < list.Count; i++)
//{
// Console.WriteLine("/t键:{0}/t值:{1}", list.GetKey(i), list.GetByIndex(i));
//}
foreach (DictionaryEntry de in list)
Console.WriteLine("/t键:{0}/t值:{1}", de.Key, de.Value);
}
public void GetInfo()
{
Console.WriteLine(string.Format("信息/t元素总数:{0}/t可包含元素总数:{1}", list.Count, list.Capacity));
}
static void Main(string[] args)
{
SortedListHelper slh = new SortedListHelper();
//添加元素
slh.Add("1", "C");
slh.Add("2", "B");
slh.Add("3", "A");
//输出信息
slh.GetInfo();
Console.Read();
}
}
}
对于Stack
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace Stacks
{
class StackHelper
{
private Stack list;
public Stack List
{
get { return list; }
set { list = value; }
}
public StackHelper()
{
list = new Stack();
Console.WriteLine("-----------Stack---------");
}
/// <summary>
/// 压入一个元素
/// </summary>
/// <param name="o"></param>
public void Add(object o)
{
list.Push(o);
Console.WriteLine("压入/t元素:{0}",o);
}
/// <summary>
/// 删除顶部元素
/// </summary>
public void Remove()
{
list.Pop();
Console.WriteLine("删除顶部元素");
}
/// <summary>
/// 得到顶部元素的值
/// </summary>
public void GetValue()
{
Console.WriteLine(string.Format("取值/t顶部元素的值:{0}",list.Peek()));
}
/// <summary>
/// 遍历栈
/// </summary>
public void GetValues()
{
Console.WriteLine("遍历");
foreach(object o in list)
{
Console.WriteLine(string.Format("/t元素的值:{0}",o));
}
}
public void GetInfo()
{
Console.WriteLine(string.Format("信息/t元素总数:{0}",list.Count));
}
static void Main(string[] args)
{
StackHelper sh = new StackHelper();
//添加元素
sh.Add("C");
sh.Add("B");
sh.Add("A");
//得到元素信息
sh.GetInfo();
//遍历元素
sh.GetValues();
//得到顶部元素的值
sh.GetValue();
//删除顶部元素
sh.Remove();
sh.GetValues();
Console.Read();
}
}
}