很多非泛型集合類都有對應的泛型集合類,下面是常用的非泛型集合類以及對應的泛型集合類:
非泛型集合類 |
泛型集合類 |
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;
}
}
}