zoukankan      html  css  js  c++  java
  • c#笔记(十二)——集合

    前面的类 
    classMyList
        {
     
            private int [] arr = new int[10];
     
            public int this[int index]
            {
                get
                {
                    if (index >= arr.Length)
                    {
                        return 0;
                    }
                    else if (index < 0)
                    {
                        return 0;
                    }
                    else {
                        return arr[index];
                    }
                }
                set
                {
                    if (index >= 0 && index < arr.Length)
                    {
                        arr[index] = value;
                    }
                }
            }
        }
     
        public static class PrintTool
        {
            public static void PrintStack( Stack stack)
            {
                foreach (object item in stack)
                {
                    Console.WriteLine(item);
                }
                Console.WriteLine();
                Console.WriteLine("-----------" );
            }
     
            public static void PrintQueue( Queue queue)
            {
                foreach (var item in queue)
                {
                    Console.WriteLine(item);
                }
                Console.WriteLine(" -----------" );
            }
        }
     
     
    主函数里面的
    //Stack 的用法:
                Stack stack = new Stack();
                //Push方法:往集合里添加一个元素,并且把这个元素放到顶部
                stack.Push(1);
                stack.Push( "lanou");
                //Person p = new Person ();
                //stack.Push (p);
                PrintTool.PrintStack(stack);
     
                //Pop方法:移除并返回集合顶部的对象
                object popItem = stack.Pop();
                Console.WriteLine("popItem:" + popItem);
                PrintTool.PrintStack(stack);
     
                //Peek方法:返回集合中顶部的对象
                object peekItem = stack.Peek();
                Console.WriteLine(peekItem);
                PrintTool.PrintStack(stack);
     
                //Contains:判断集合中是否存在这个元素
                bool cItem = stack.Contains("lanou" );
                Console.WriteLine(cItem);
     
                //Clear:删除集合中的所有元素
                stack.Clear();
                PrintTool.PrintStack(stack);
     
                //Count:返回集合中当前元素个数
                int count = stack.Count;
                Console.WriteLine(count);
     
                stack.Push(1);
     
                //Colne:
                int[] a = { 1, 2, 3, 4 };
                int[] b;
                b = ( int[])a.Clone();
                b[0] = 2;
                foreach (var item in b)
                {
                    Console.WriteLine(item);
                }
                Console.WriteLine(a.Equals(b));
     
                //Queue:队列, 先进先出
                Queue queue = new Queue();
                //Enqueue: 将一个元素放入集合的尾部
                queue.Enqueue(1);
                queue.Enqueue( "lanou");
                queue.Enqueue(1.5);
                queue.Enqueue(5.0f);
                PrintTool.PrintQueue(queue);
     
                //Dequeue: 将集合首个元素删除,并返回
                object deItem = queue.Dequeue();
                Console.WriteLine(deItem);
                PrintTool.PrintQueue(queue);
     
                //Add:往集合中添加指定的键、值元素
                Dictionary<int , string> dic = new Dictionary <int, string>();
                dic.Add(101, "张三");
                dic.Add(102, "李四");
                dic.Add(103, "李四");
     
                foreach (var item in dic)
                {
                    Console.WriteLine("key:" + item.Key + "   value:" + item.Value);
                }
                Console.WriteLine("-------------" );
     
                //TryGetValue:尝试通过键去获得值,若成功则返回true,并且将键相应的值
                //通过out参数返回,否则返回false,out参数返回“”字符串
                string tryItem;
                bool tryResult = dic.TryGetValue(105, out tryItem);
                Console.WriteLine("tryItem:" + tryItem + "   tryResult:" + tryResult);
     
                foreach (var item in dic)
                {
                    Console.WriteLine("key:" + item.Key + "   value:" + item.Value);
                }
                Console.WriteLine("-------------" );
                //Clear:
                //dic.Clear ();
                foreach (var item in dic)
                {
                    Console.WriteLine("key:" + item.Key + "   value:" + item.Value);
                }
                Console.WriteLine("-------------" );
     
                //Remove:删集合中指定键值
                dic.Remove(102);
                foreach (var item in dic)
                {
                    Console.WriteLine(item);
                }
     
                //字典取值:可以通过[key]的方式来取的对应的值
                string value = dic[101];
                Console.WriteLine("101:" + value);
     
                //ContainsKey:判断集合中是否存在某个键
                bool isFindKey = dic.ContainsKey(105);
                Console.WriteLine(isFindKey);
                //ContainsValue: 判断集合中是否存在某个值
                bool isFindValue = dic.ContainsValue("老王" );
                Console.WriteLine(isFindValue);
     
                //遍历集合中的所有键
                //1. 把keys放到变量中
                /*Dictionary<int ,string>.KeyCollection keys = dic.Keys;
                                                    foreach (var item in keys) {
                                                                    
                                                    }*/
     
                foreach (var item in dic.Keys)
                {
                    Console.WriteLine(item);
                }
     
                //遍历集合中的所有值
                foreach (var item in dic.Values)
                {
                    Console.WriteLine(item);
                }
     
                // 用户输入10个姓名,可以重复输入同一个姓名,
                //输出每个姓名,并输出每个姓名输入的多少次。
                /*Dictionary<string ,int> student = new Dictionary<string, int> ();
                                    
                                                    for (int i = 0; i < 10; i++) {
                                                                    //输入一个学生的名字
                                                                    string name = Console.ReadLine ();
                                                                    //如果该学生已经被添加到集合中,那么将他的票数加1
                                                                    if (student.ContainsKey (name)) {
                                                                                    student [name] += 1;
                                                                    } else {//否则,加入这个学生,并且初始票数设置为1
                                                                                    student.Add (name , 1);
                                                                    }
                                                    }
     
                                                    foreach (var item in student) {
                                                                    Console.WriteLine (item.Key+":"+item.Value);
                                                    }*/
     
     
                //--------
                ArrayList arrayList = new ArrayList();
                arrayList.Add(1);
                arrayList.Add(2);
                arrayList.Add( 'A');
                arrayList.Add( "sss");
     
                foreach (var item in arrayList)
                {
                    Console.WriteLine(item);
                }
     
                //AddRange:可以将一个继承了ICollection接口的集合里面的
                //元素挨个添加进来
                //把一个字典加入的arraylist中
                arrayList.AddRange(dic);
                //
                arrayList.AddRange(queue);
     
                foreach (var item in arrayList)
                {
                    Console.WriteLine(item);
                }
                //Contains:
                arrayList.Contains( 'A');
     
                //可以将集合中的元素通过此方法,拷贝到一个足够长的数组中
                object[] arr = new object[arrayList.Count];
                arrayList.CopyTo(arr);
     
                Console.WriteLine("CopyTo---------------" );
                foreach (var item in arr)
                {
                    Console.WriteLine(item);
                }
     
                //取值方式和一维数组一样
                Console.WriteLine(arrayList[0]);
     
                MyList mylist = new MyList();
                mylist[0] = 12;
                Console.WriteLine(mylist[0]);
     
                Console.ReadKey();
  • 相关阅读:
    优化SQL查询:如何写出高性能SQL语句
    提高SQL执行效率的16种方法
    Spring Ioc DI 原理
    java内存泄漏
    转:js闭包
    LeetCode Best Time to Buy and Sell Stock III
    LeetCode Best Time to Buy and Sell Stock with Cooldown
    LeetCode Length of Longest Fibonacci Subsequence
    LeetCode Divisor Game
    LeetCode Sum of Even Numbers After Queries
  • 原文地址:https://www.cnblogs.com/ningyongbin/p/5922235.html
Copyright © 2011-2022 走看看