很多非泛型集合类都有对应的泛型集合类,下面是常用的非泛型集合类以及对应的泛型集合类:
非泛型集合类 |
泛型集合类 |
ArrayList |
List<T> |
HashTable |
DIctionary<T> |
Queue |
Queue<T> |
Stack |
Stack<T> |
SortedList |
SortedList<T> |
我们用的比较多的非泛型集合类主要有 ArrayList类 和 HashTable类。我们经常用HashTable 来存储将要写入到数据库或者返回的信息,在这之间要不断的进行类型的转化,增加了系统装箱和拆箱的负担,如果我们操纵的数据类型相对确定的化 用 Dictionary<TKey,TValue> 集合类来存储数据就方便多了。
Code
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace Collections
{
class Program
{
static void Main(string[] args)
{
//ShowArrayList();
//ShowHashTable();
ShowGenericCollection();
}
//ArrayList
public static void ShowArrayList()
{
ArrayList list = new ArrayList();
list.Add(1);
list.Add("hello");
//遍历
foreach (object o in list)
{
Console.WriteLine(o);
}
Console.WriteLine(list[0]);
Console.WriteLine(list[1]);
Console.ReadLine();
}
//哈希表
public static void ShowHashTable()
{
Hashtable ht = new Hashtable();
ht.Add("1", "engine1");
ht.Add("2", "engine2");
ht.Add("3", "engine3");
Console.WriteLine(ht["2"]);
//遍历哈希表
foreach (DictionaryEntry de in ht)
{
Console.WriteLine(de.Key);
Console.WriteLine(de.Value);
}
Console.ReadLine();
}
//泛型集合类
public static void ShowGenericCollection()
{
Person p1 = new Person("engine1");
Person p2 = new Person("engine2");
List<Person> list = new List<Person>();
list.Add(p1);
list.Add(p2);
//遍历
foreach (Person p in list)
{
Console.WriteLine(p.Name);
}
Console.ReadLine();
//--------------------------------------
Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("1", "engine1");
dict.Add("2", "engine2");
dict.Add("3", "engine3");
foreach (KeyValuePair<string, string> kvp in dict)
{
Console.WriteLine("key={0},value={1}", kvp.Key, kvp.Value);
}
Console.ReadLine();
}
}
public class Person
{
private string _name;
public string Name
{
get
{
return this._name;
}
set
{
_name = value;
}
}
public Person(string name)
{
this._name = name;
}
}
}