zoukankan      html  css  js  c++  java
  • C# 6种常用集合类

    1.ArrayList类

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Collections;
    namespace ConsoleApplication1
    {
        
    class Program
        
    {
            
    static void Main(string[] args)
            
    {
                ArrayList al 
    = new ArrayList();
                al.Add(
    100);//单个添加
                foreach (int number in new int[6937248 })
                
    {
                    al.Add(number);
    //集体添加方法一//清清月儿 http://blog.csdn.net/21aspnet/
                }

                
    int[] number2 = new int[211,12 };
                al.AddRange(number2);
    //集体添加方法二
                al.Remove(3);//移除值为3的
                al.RemoveAt(3);//移除第3个
                ArrayList al2 = new ArrayList(al.GetRange(13));//新ArrayList只取旧ArrayList一部份


                Console.WriteLine(
    "遍历方法一:");
                
    foreach (int i in al)//不要强制转换
                {
                    Console.WriteLine(i);
    //遍历方法一
                }


                Console.WriteLine(
    "遍历方法二:");
                
    for (int i = 0; i != al2.Count; i++)//数组是length
                {
                    
    int number = (int)al2[i];//一定要强制转换
                    Console.WriteLine(number);//遍历方法二

                }

            }

        }

    }

    2.Stack类

    栈,后进先出。push方法入栈,pop方法出栈。

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Collections;
    namespace ConsoleApplication1
    {
        
    class Program
        
    {
            
    static void Main(string[] args)
            
    {
                Stack sk 
    = new Stack();
                Stack sk2 
    = new Stack();
                
    foreach (int i in new int[41234 })
                
    {
                    sk.Push(i);
    //填充
                    sk2.Push(i);
                }

                
                
    foreach (int i in sk)
                
    {
                    Console.WriteLine(i);
    //遍历
                }


                sk.Pop();
                Console.WriteLine(
    "Pop");
                
    foreach (int i in sk)
                
    {
                    Console.WriteLine(i);
                }

                
                sk2.Peek();
    //弹出最后一项不删除//清清月儿 http://blog.csdn.net/21aspnet/
                Console.WriteLine("Peek");
                
    foreach (int i in sk2)
                
    {
                    Console.WriteLine(i);
                }


                
    while (sk2.Count != 0)
                
    {
                    
    int i = (int)sk2.Pop();//清空
                    sk2.Pop();//清空
                }

                Console.WriteLine(
    "清空");
                
    foreach (int i in sk2)
                
    {
                    Console.WriteLine(i);
                }

            }

        }

    }

    3.Queue类

    队列,先进先出。enqueue方法入队列,dequeue方法出队列。

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Collections;
    namespace ConsoleApplication1
    {
        
    class Program
        
    {
            
    static void Main(string[] args)
            
    {
                Queue qu 
    = new Queue();
                Queue qu2 
    = new Queue();
                
    foreach (int i in new int[41234 })
                
    {
                    qu.Enqueue(i);
    //填充
                    qu2.Enqueue(i);
                }

                
                
    foreach (int i in qu)
                
    {
                    Console.WriteLine(i);
    //遍历
                }


                qu.Dequeue();
                Console.WriteLine(
    "Dequeue");
                
    foreach (int i in qu)
                
    {
                    Console.WriteLine(i);
                }

                
                qu2.Peek();
    //弹出最后一项不删除
                Console.WriteLine("Peek");
                
    foreach (int i in qu2)
                
    {
                    Console.WriteLine(i);
                }


                
    while (qu2.Count != 0)
                
    {
                    
    int i = (int)qu2.Dequeue();//清空
                    qu2.Dequeue();//清空
                }

                Console.WriteLine(
    "清空");
                
    foreach (int i in qu2)
                
    {
                    Console.WriteLine(i);
                }

            }

        }

    }

    4.Hashtable类

    哈希表,名-值对。类似于字典(比数组更强大)。哈希表是经过优化的,访问下标的对象先散列过。如果以任意类型键值访问其中元素会快于其他集合。GetHashCode()方法返回一个int型数据,使用这个键的值生成该int型数据。哈希表获取这个值最后返回一个索引,表示带有给定散列的数据项在字典中存储的位置。

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Collections;
    namespace ConsoleApplication1
    {
        
    class Program
        
    {
            
    public static void Main()
            
    {

                
    // Creates and initializes a new Hashtable.
                Hashtable myHT = new Hashtable();
                myHT.Add(
    "one""The");
                myHT.Add(
    "two""quick");
                myHT.Add(
    "three""brown");
                myHT.Add(
    "four""fox");

                
    // Displays the Hashtable.//清清月儿 http://blog.csdn.net/21aspnet/
                Console.WriteLine("The Hashtable contains the following:");
                PrintKeysAndValues(myHT);
            }



            
    public static void PrintKeysAndValues(Hashtable myHT)
            
    {
                
    foreach (string s in myHT.Keys)
                    Console.WriteLine(s);

                Console.WriteLine(
    " -KEY- -VALUE-");
                
    foreach (DictionaryEntry de in myHT)
                    Console.WriteLine(
    " {0}: {1}", de.Key, de.Value);
                Console.WriteLine();
            }

        }

    }

    5.SortedList类

    与哈希表类似,区别在于SortedList中的Key数组排好序的。

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Collections;
    namespace ConsoleApplication1
    {
        
    class Program
        
    {
            
    public static void Main()
            
    {

                SortedList sl 
    = new SortedList();
                sl[
    "c"= 41;
                sl[
    "a"= 42;
                sl[
    "d"= 11;
                sl[
    "b"= 13;

                
    foreach (DictionaryEntry element in sl)
                
    {
                    
    string s = (string)element.Key;
                    
    int i = (int)element.Value;
                    Console.WriteLine(
    "{0},{1}",s,i);
                }

            }

        }

    }

    6.NameValueCollection类

    官方给NameValueCollection定义为特殊集合一类,在System.Collections.Specialized下。

    System.Collections.Specialized下还有HybridDicionary类,建议少于10个元素用HybridDicionary,当元素增加会自动转为HashTable。

    System.Collections.Specialized下还有HybridDicionary类,字符串集合。

    System.Collections.Specialized下还有其他类大家可以各取所需!

    言归正转主要说NameValueCollection,HashTable 和 NameValueCollection很类似但是他们还是有区别的,HashTable 的KEY是唯一性,而NameValueCollection则不唯一

    using System;
    using System.Collections.Generic;
    using System.Collections;
    using System.Collections.Specialized;
    namespace ConsoleApplication1
    {

        
    class Program
        
    {

            
    static void Main(string[] args)
            
    {
                System.Collections.Hashtable ht 
    = new System.Collections.Hashtable();
                ht.Add(
    "DdpMDisplaySeq".Trim(), "Display Sequence".Trim());
                ht.Add(
    "DdpMNameChi".Trim(), "Name (Chinese)".Trim());
                ht.Add(
    "DdpMNameEng".Trim(), "Name (English)".Trim());
                ht.Add(
    "Comment".Trim(), "Comment".Trim());
                ht.Add(
    "DdpMMarketCode".Trim(), "Market Code".Trim());
                
    foreach (object key in ht.Keys)
                
    {
                    Console.WriteLine(
    "{0}/{1}    {2},{3}", key, ht[key], key.GetHashCode(), ht[key].GetHashCode());
                }

                Console.WriteLine(
    " ");//清清月儿 http://blog.csdn.net/21aspnet/
                NameValueCollection myCol 
    = new NameValueCollection();
                myCol.Add(
    "DdpMDisplaySeq".Trim(), "Display Sequence".Trim());
                myCol.Add(
    "DdpMNameChi".Trim(), "Name (Chinese)".Trim());
                myCol.Add(
    "DdpMNameChi".Trim(), "Name (English)".Trim());
                myCol.Add(
    "Comment".Trim(), "Comment".Trim());
                myCol.Add(
    "DdpMMarketCode".Trim(), "Market Code".Trim());
                
    foreach (string key in myCol.Keys)
                
    {
                    Console.WriteLine(
    "{0}/{1} {2},{3}", key, myCol[key], key.GetHashCode(), myCol[key].GetHashCode());
                }


            }


        }



    }




     

  • 相关阅读:
    Junit单元测试
    win7的6个网络命令
    WOJ1024 (POJ1985+POJ2631) Exploration 树/BFS
    WOJ1022 Competition of Programming 贪心 WOJ1023 Division dp
    woj1019 Curriculum Schedule 输入输出 woj1020 Adjacent Difference 排序
    woj1018(HDU4384)KING KONG 循环群
    woj1016 cherry blossom woj1017 Billiard ball 几何
    woj1013 Barcelet 字符串 woj1014 Doraemon's Flashlight 几何
    woj1012 Thingk and Count DP好题
    woj1010 alternate sum 数学 woj1011 Finding Teamates 数学
  • 原文地址:https://www.cnblogs.com/daohuen/p/799004.html
Copyright © 2011-2022 走看看