zoukankan      html  css  js  c++  java
  • 集合

    1.ArrayList类集合    注意引用:using System.Collections;

    特性:可以装任意类型的元素,和数量

    using System;
    
    using System.Collections;
    namespace test
    {
      public class teste {
          public static int bl=10;
           static void Main()
           {
               //集合的好处,长度可以任意改变,类型随便
    
               //数组长度不可变,类型不可变
               ArrayList list = new ArrayList();//创建集合对象
               list.Add(12);
               list.Add("张三");
               list.Add('');
               //添加一个数组
               list.AddRange(new int[]{1,2,3});
               list.AddRange(list);//添加自己
    
               //list.Clear();清空所有元素
               //list.Remove(12);删除单个元素,删谁写谁
              //list.RemoveAt(2);根据下标删除元素
               //list.Sort();升序排列
               // list.Reverse();反转
               //list.Insert(1,"插入的");在指定的位置插入一个元素
               //list.InsertRange(0,new string[]{"zhang","lisi"});在指定的位置插入数组
              // bool b = list.Contains(12);判断是否包含某个元素
    
              
               for (int i = 0; i < list.Count;i++ ) {
                   Console.WriteLine(list[i]);
               }
    ;
               Console.ReadKey();
           }
       }
    
     }
    View Code

     2.泛型集合List<T>    用法和ArrayList一样只是类型不同,只能存储特定的类型

    class Program
        {
            static void Main(string[] args)
            {
                #region List<T>类常用的方法
                    List<string> dinosaurs = new List<string>();//创建一个string的List集合
    
                    Console.WriteLine("
    Capacity: {0}", dinosaurs.Capacity);//输出默认容量的大小
    
                    dinosaurs.Add("Tyrannosaurus");//向集合添加元素
                    dinosaurs.Add("Amargasaurus");
                    dinosaurs.Add("Mamenchisaurus");
                    dinosaurs.Add("Deinonychus");
                    dinosaurs.Add("Compsognathus");
    
                    Console.WriteLine();
                    foreach (string dinosaur in dinosaurs)//打印集合中的元素
                    {
                        Console.WriteLine(dinosaur);
                    }
    
                    Console.WriteLine("
    Capacity: {0}", dinosaurs.Capacity);
                    Console.WriteLine("Count: {0}", dinosaurs.Count);//输出集合中实际元素的数量
    
                    Console.WriteLine("
    Contains("Deinonychus"): {0}",
                        dinosaurs.Contains("Deinonychus"));//判断集合中是否包含某个元素
    
                    Console.WriteLine("
    Insert(2, "Compsognathus")");
                    dinosaurs.Insert(2, "Compsognathus");//将元素插入到集合的指定索引出,允许插入重复的元素
    
                    Console.WriteLine();
                    foreach (string dinosaur in dinosaurs)//打印集合中的元素
                    {
                        Console.WriteLine(dinosaur);
                    }
                    Console.WriteLine("
    dinosaurs[3]: {0}", dinosaurs[3]);//输出集合中索引为3的元素
    
                    Console.WriteLine("
    Remove("Compsognathus")");
                    dinosaurs.Remove("Compsognathus");//移除集合中第一个匹配的元素
    
                    Console.WriteLine();
                    foreach (string dinosaur in dinosaurs)//打印集合中的元素
                    {
                        Console.WriteLine(dinosaur);
                    }
                    dinosaurs.TrimExcess();//减小容量以匹配计数,然后显示 Capacity 和 Count 属性。如果未用容量已经小于总容量的 10%,则列表容量不会进行调整。
                    Console.WriteLine("
    TrimExcess()");
                    Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
                    Console.WriteLine("Count: {0}", dinosaurs.Count);
    
                    dinosaurs.Clear();//移除列表中的所有项,然后显示 Capacity 和 Count 属性。
                    Console.WriteLine("
    Clear()");
                    Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
                    Console.WriteLine("Count: {0}", dinosaurs.Count);
                
    #endregion
    
                #region List<T>类的新增方法
    
                List<string> dinosaurs1 = new List<string>();//创建一个string的List集合
    
                dinosaurs1.Add("Compsognathus");//向集合添加元素
                dinosaurs1.Add("Amargasaurus");
                dinosaurs1.Add("Oviraptor");
                dinosaurs1.Add("Velociraptor");
                dinosaurs1.Add("Deinonychus");
                dinosaurs1.Add("Dilophosaurus");
                dinosaurs1.Add("Gallimimus");
                dinosaurs1.Add("Triceratops");
    
                Console.WriteLine();
                foreach (string dinosaur in dinosaurs1)
                {
                    Console.WriteLine(dinosaur);
                }
    
                Console.WriteLine("
    TrueForAll(EndsWithSaurus): {0}",
                    dinosaurs1.TrueForAll(EndsWithSaurus));//确定集合中的每个元素是否都与指定的谓词所定义的条件相匹配
    
                Console.WriteLine("
    Find(EndsWithSaurus): {0}",
                    dinosaurs1.Find(EndsWithSaurus));//搜索与指定谓词条件相匹配的第一个元素
    
                Console.WriteLine("
    FindLast(EndsWithSaurus): {0}",
                    dinosaurs1.FindLast(EndsWithSaurus));//搜索与指定谓词条件相匹配的最后一个元素
    
                Console.WriteLine("
    FindAll(EndsWithSaurus):");
                List<string> sublist = dinosaurs1.FindAll(EndsWithSaurus);//检索与指定谓词定义的条件匹配的所有元素
    
                foreach (string dinosaur in sublist)//打印集合
                {
                    Console.WriteLine(dinosaur);
                }
    
                Console.WriteLine(
                    "
    {0} elements removed by RemoveAll(EndsWithSaurus).",
                    dinosaurs1.RemoveAll(EndsWithSaurus));//移除与指定谓词定义的条件匹配的所有元素
    
                Console.WriteLine("
    List now contains:");
                foreach (string dinosaur in dinosaurs1)//打印集合
                {
                    Console.WriteLine(dinosaur);
                }
    
                Console.WriteLine("
    Exists(EndsWithSaurus): {0}",
                    dinosaurs1.Exists(EndsWithSaurus));//该方法从头开始遍历该列表,依次将每个元素传递给 EndsWithSaurus 方法。如果 EndsWithSaurus 方法针对任何元素返回 true,搜索即停止
                dinosaurs1.Sort();//对集合中的元素排序
                dinosaurs1.Reverse();//将集合中的元素顺序反转
                dinosaurs1.ForEach(Print);//对集合中的每个元素执行指定的方法(如Print方法)
                Console.Read();
                #endregion
            }
    
            // 搜索谓词方法,该方法接受一个字符串作为参数,并返回一个布尔值,指示输入的字符串是否以“saurus”结尾。
            private static bool EndsWithSaurus(String s)
            {
                if ((s.Length > 5) &&
                    (s.Substring(s.Length - 6).ToLower() == "saurus"))
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
    
            //定义打印集合的方法
            private static void Print(string s)
            {
                Console.WriteLine(s);
            }
    
        }
    View Code

    3.  Hashtable键值对集合    注意引用:using System.Collections;

    public class Program
        {
            public static void Main(string[] args)
            {
                //创建一个HashTable
                Hashtable openWith = new Hashtable();
    
                //为HashTable添加元素,不能有重复的key,但可以有重复的值
                openWith.Add("txt", "notepad.exe");
                openWith.Add("bmp", "paint.exe");
                openWith.Add("dib", "paint.exe");
                openWith.Add("rtf", "wordpad.exe");
    
                
    
                //添加重复的key,会抛出异常
                try
                {
                    openWith.Add("txt", "winword.exe");
                }
                catch
                {
                    Console.WriteLine("An element with Key = "txt" already exists.");
                }
    
                //通过key获得值 
                Console.WriteLine("For key = "rtf", value = {0}.", openWith["rtf"]);
    
                //重新赋值
                openWith["rtf"] = "winword.exe";
                Console.WriteLine("For key = "rtf", value = {0}.", openWith["rtf"]);
    
                //以赋值的方式,创建一个新元素
                openWith["doc"] = "winword.exe";
    
                //如果HashTable中不包含该元素,将抛出异常(经测试这里不抛出异常)
                //原因(如果未找到指定的键,尝试获取它将返回 空引用(在 Visual Basic 中为 Nothing),尝试设置它将使用指定的键创建新元素。 )
                try
                {
                    Console.WriteLine("For key = "tif", value = {0}.", openWith["tif"]);
                }
                catch
                {
                    Console.WriteLine("Key = "tif" is not found.");
                }
    
                //判断是否包含特定的key
                if (!openWith.ContainsKey("ht"))
                {
                    openWith.Add("ht", "hypertrm.exe");
                    Console.WriteLine("Value added for key = "ht": {0}", openWith["ht"]);
                }
    
                //遍历HashTable
                Console.WriteLine();
                foreach (DictionaryEntry de in openWith)
                {
                    Console.WriteLine("Key = {0}, Value = {1}", de.Key, de.Value);
                }
    
                // 获取HashTable中值的集合
                ICollection valueColl = openWith.Values;
    
    
                Console.WriteLine();
                foreach (string s in valueColl)
                {
                    Console.WriteLine("Value = {0}", s);
                }
    
                // 获取HashTable中键的集合
                ICollection keyColl = openWith.Keys;
    
    
                Console.WriteLine();
                foreach (string s in keyColl)
                {
                    Console.WriteLine("Key = {0}", s);
                }
    
    
                Console.WriteLine("
    Remove("doc")");
                //移除指定的元素
                openWith.Remove("doc");
    
                if (!openWith.ContainsKey("doc"))
                {
                    Console.WriteLine("Key "doc" is not found.");
                }
    
    
                Hashtable mySourceHT = new Hashtable();
                mySourceHT.Add("A", "valueA");
                mySourceHT.Add("B", "valueB");
    
                // 创建一个字符串数组
                String[] myTargetArray = new String[15];
                myTargetArray[0] = "The";
                myTargetArray[1] = "quick";
                myTargetArray[2] = "brown";
                myTargetArray[3] = "fox";
                myTargetArray[4] = "jumped";
                myTargetArray[5] = "over";
                myTargetArray[6] = "the";
                myTargetArray[7] = "lazy";
                myTargetArray[8] = "dog";
    
                // 遍历数组的值
                Console.WriteLine("The target Array contains the following before:");
                PrintValues(myTargetArray, ' ');
    
                //将hashtable中的key复制到数组中
                Console.WriteLine("After copying the keys, starting at index 6:");
                mySourceHT.Keys.CopyTo(myTargetArray, 6);
    
                
                PrintValues(myTargetArray, ' ');
    
                //将hashtable中的Value复制到数组中
                Console.WriteLine("After copying the values, starting at index 6:");
                mySourceHT.Values.CopyTo(myTargetArray, 6);
    
                PrintValues(myTargetArray, ' ');
    
                Console.Read();
            }
    
            //遍历数据方法
            public static void PrintValues(String[] myArr, char mySeparator)
            {
                for (int i = 0; i < myArr.Length; i++)
                    Console.Write("{0}{1}", mySeparator, myArr[i]);
                Console.WriteLine();
            }
    
        }
    View Code

    4.Dictionaty字典集合   相似 Hashtable

    using System;
    using System.Collections;
    using System.Collections.Generic;
    namespace Dome
    {
        class person
        {
            static void Main(string[] args)
            {
                Dictionary<int, string> dic = new Dictionary<int, string>();//创建对象
                dic.Add(1,"张三");
                dic.Add(2,"李四");
                dic.Add(3,"王五");
    
                dic[1] = "赵六";
                foreach(int item in dic.Keys){
                    Console.WriteLine("{0}-------{1}", item, dic[item]);
                }
                //另一种遍历方式
                foreach(KeyValuePair<int,string>it in dic){
                    Console.WriteLine("{0}-------{1}",it.Key,it.Value);
                }
    
                Console.ReadKey();
            }
        }
    }
    View Code
    时间就像海绵里的水,只要你愿意挤,总还是有的——鲁迅
  • 相关阅读:
    vue-cli的npm run build的常见问题
    es6 Symbol
    es6 对象的扩展
    es7 函数绑定
    es6 箭头函数
    学习weex遇见非常奇怪的问题
    微信
    java面试题
    PHP面试题
    Android
  • 原文地址:https://www.cnblogs.com/syzly/p/6657790.html
Copyright © 2011-2022 走看看