这段代码演示了System.Collections.Generic的各容器类的用法,包括:Dictionary,KeyValuePair,SortedDictionary,SortedList,HashSet,SortedSet,List,Queue,Stack等类的用法
System.Collections.Generic.Dictionary<>; //键/值对集合 |
System.Collections.Generic.KeyValuePair<>; //键/值对结构, 作为 Dictionary<> 的一个元素存在 |
System.Collections.Generic.SortedDictionary<>; //相当于 Key 能自动排序 Dictionary<> |
System.Collections.Generic.SortedList<>; //和 SortedDictionary<> 功能相似, 但内部算法不同, 其 Keys、Values 可通过索引访问 |
System.Collections.Generic.HashSet<>; //无序、无重复的元素集合 |
System.Collections.Generic.SortedSet<>; //相当于能自动排序的 HashSet<> |
System.Collections.Generic.List<>; //相当于泛型的 ArrayList, 元素可重复、可排序、可插入、可索引访问 |
System.Collections.Generic.Queue<>; //队列, 先进先出 |
System.Collections.Generic.Stack<>; //堆栈, 后进先出 |
System.Collections.Generic.LinkedList<>; //双向链表 |
System.Collections.Generic.LinkedListNode<>; //LinkedList<> 的节点 |
System.Collections.Generic.SynchronizedCollection<>; //线程安全的集合 |
System.Collections.Generic.SynchronizedReadOnlyCollection<>; //线程安全的只读集合 |
System.Collections.Generic.SynchronizedKeyedCollection<>; //线程安全的键/值集合 |
Dictionary<>、KeyValuePair<>: |
protected void Button1_Click( object sender, EventArgs e) |
Dictionary< string , int > dict = new Dictionary< string , int >(); |
foreach (KeyValuePair< string , int > k in dict) |
str += string .Format( "{0}-{1}; " , k.Key, k.Value); //K1-123; K2-456; K3-789; |
protected void Button1_Click( object sender, EventArgs e) |
SortedDictionary< string , int > dict = new SortedDictionary< string , int >(); |
SortedDictionary< string , int >.KeyCollection ks = dict.Keys; |
SortedDictionary< string , int >.ValueCollection vs = dict.Values; |
foreach (KeyValuePair< string , int > k in dict) |
s1 += string .Format( "{0}-{1}; " , k.Key, k.Value); //K1-111; K2-222; K3-333; |
foreach ( string s in ks) { s2 += s + "; " ; } //K1; K2; K3; |
foreach ( int n in vs) { s3 += n.ToString() + "; " ; } //111; 222; 333; |
TextBox1.Text = s1 + "\n" + s2 + "\n" + s3; |
protected void Button1_Click( object sender, EventArgs e) |
SortedList< string , int > dict = new SortedList< string , int >(); |
foreach (KeyValuePair< string , int > k in dict) |
s1 += string .Format( "{0}-{1}; " , k.Key, k.Value); //K1-111; K2-222; K3-333; |
s3 = dict.Values[0].ToString(); //111 |
TextBox1.Text = s1 + "\n" + s2 + "\n" + s3; |
protected void Button1_Click( object sender, EventArgs e) |
HashSet< string > hs = new HashSet< string >(); |
SortedSet< string > ss = new SortedSet< string >(); |
foreach ( string s in hs) { s1 += s + " " ; } //ccc bbb aaa |
foreach ( string s in ss) { s2 += s + " " ; } //aaa bbb ccc |
TextBox1.Text = s1 + "\n" + s2; |
protected void Button1_Click( object sender, EventArgs e) |
List< int > list = new List< int >(); |
string s1, s2 = "" , s3, s4 = "" ; |
s1 = list[0].ToString(); //33 |
for ( int i = 0; i < list.Count; i++) { s2 += list[i].ToString() + " " ; } //33 11 22 |
s3 = list[0].ToString(); //11 |
foreach ( int n in list) { s4 += n.ToString() + " " ; } //11 22 33 |
TextBox1.Text = s1 + "\n" + s2 + "\n" + s3 + "\n" + s4; |
LinkedList<>、LinkedListNode<>: |
protected void Button1_Click( object sender, EventArgs e) |
LinkedList< string > list = new LinkedList< string >(); |
list.AddAfter(list.First, "ddd" ); |
list.AddBefore(list.Last, "eee" ); |
string s1 = "" , s2 = "" , s3 = "" , s4 = "" , s5 = "" ; |
foreach ( string s in list) { s1 += s + " " ; } //ccc ddd aaa eee bbb |
LinkedListNode< string > node = list.First; |
s2 = node.Value.ToString(); //ccc |
s3 = node.Value.ToString(); //ddd |
node = list.Last.Previous.Previous; |
s4 = node.Value.ToString(); //aaa |
s5 += node.Value.ToString() + " " ; //ddd aaa |
TextBox1.Text = s1 + "\n" + s2 + "\n" + s3 + "\n" + s4 + "\n" + s5; |
|