zoukankan      html  css  js  c++  java
  • 数组和集合的区别

           所谓数组,是有序的元素序列,在C#语言中,数组可以存放任意多个同类型数据,但是一个数组在创建后,它的长度将固定不变,不能增加、也不能减少数据,这就是它的定长性。所有就有了更灵活的集合,集合能够保存的数据不定长,可以在程序执行的过程中,不断的发生变化,任意增加、或减少、或修改。在功能上,数组能实现的所有功能,集合都能实现,反之则不行。

                在声明与赋值方面:

                数组声明:数据类型[] 变量名     例如:

    int[] numbers =new int[5];    //定义了一个numbers变量,它是一个数组可以存放5个int类型的数据
    

             集合声明:List<数据类型>变量名;     例如:

    List<int> nums=new List<int>();
    

                集合还可以任意添加、删除、修改元素,实现如下:

    //添加元素:变量名.Add(要添加的数据);
    List<int> nums=new List<int>{3,5,7};
    nums.Add(3);
    
    //插入元素:变量名.Insert(索引,要插入的数据);
    List<int> nums=new List<int>{3,5,7};
    nums.Insert(1,10);
    
    //删除元素:变量名.RemoveAt(索引);   -->删除指定索引位置的元素
                  //变量名.Remove(数据);  -->删除集合中与填写的数据相同的第一个匹配项
    List<int> nums=new List<int>{1,1,2,3,5};
    nums.RemoveAt(2);              //删除索引为2的元素
    nums.Remove(1);                 //删除与数据1相同的第一个元素
    
    //修改元素:变量名[索引]=值;
    
    //获取元素数量(获取集合长度):变量名.Count
    

      示例1:数组分析器

                Console.Write("请输入数组的长度:");
                int len = int.Parse(Console.ReadLine());
                int[] nums = new int[len];
                #region  给数组赋值
                for (int i=0;i<len;i++)            //给数组赋值
                {
                     Console.Write("请输入数组的第"+(i+1)+"项:");
                     nums[i] = int.Parse(Console.ReadLine());
                }
                Console.Clear();
    #endregion
                #region 对数组进行排序并输出
                Console.WriteLine("您输入的数字排序后如下:");     //对数组进行排序并输出
                for (int i = 0; i < len; i++)      
                {
                    for (int j = i + 1; j < len; j++)
                    {
                        if (nums[i] > nums[j])
                        {
                            int temp = nums[i];
                            nums[i] = nums[j];
                            nums[j] = temp;
                        }
                    }
                    Console.Write(nums[i]+"	");
                }
                Console.WriteLine();
                #endregion
                #region 判断奇数并输出
                Console.WriteLine("其中,以下数字是奇数:");   //判断奇数并输出
                for (int i = 0; i < len; i++)
                {
                    if (nums[i] % 2 != 0)
                    {
                        Console.Write(nums[i]+"	");
                    }
                }
                Console.WriteLine();
                #endregion
                #region  判断质数并输出
                Console.WriteLine("以下数字是质数:");       //判断质数并输出
                bool isFind=true;
                for (int i = 0; i < len; i++)
                {
                    for (int j = 2; j < nums[i]; j++)
                    {
                        if (nums[i] % j == 0)
                        {
                            isFind = false;
                            break;
                        }
                    }
                    if(isFind)
                    Console.Write(nums[i]+"	");
                    isFind = true;
                }
                #endregion
                Console.ReadLine();
    

      示例2:集合管理器

     List<int> arrays = new List<int>();
                while (true)                   //无限循环
                {
                    Console.WriteLine("集合中现有内容如下:");     Console.WriteLine("===============================================");
                    if (arrays.Count == 0)                //当集合里没有值的时候
                    {
                        Console.WriteLine("集合中没有元素");
                    }
                    else
                    {
                        foreach (int array in arrays)
                        {
                            Console.Write(array + "	");          //遍历,显示集合的值
                        }
                        Console.WriteLine();
                    }   Console.WriteLine("===============================================");
                    Console.WriteLine("1.添加数据");          //获取用户输入
                    Console.WriteLine("2.删除数据");
                    Console.WriteLine("3.修改数据");
                    Console.WriteLine("4.升序排序");
                    Console.WriteLine("0.退出程序");
                    Console.Write("请选择(0-4):");
                    string input = Console.ReadLine();
                    if (input == "0")                                //用户输入0,则推出程序
                    {
                        break;
                    }
                    else if (input == "1")                     //用户输入1,则添加数字
                    {
                        Console.Write("请输入要添加的数字:");
                        arrays.Add( int.Parse(Console.ReadLine()));
                    }
                    else if (input == "2")               //用户输入2,则删除数字
                    {
                        if (arrays.Count == 0)
                        {
                            Console.Write("集合中没有可删除的数据,按回车继续");
                            Console.ReadLine();
                        }
                        else
                        {
                            Console.WriteLine("请输入你要删除的数据(只会删除第一个匹配项):");
                            arrays.Remove(int.Parse(Console.ReadLine()));
                        }
                    }
                    else if (input == "3")         //用户输入3,则修改数字
                    {
                        if (arrays.Count == 0)
                        {
                            Console.Write("集合中没有任何数据可以修改,按回车键继续");
                            Console.ReadLine();
                        }
                        else
                        {
                            Console.Write("请输入要删除的下标0-" + (arrays.Count - 1) + ":");
                            int index = int.Parse(Console.ReadLine());
                            if (index > (arrays.Count - 1))
                            {
                                Console.Write("输入错误,下标超出范围,按回车键继续");
                                Console.WriteLine();
                            }
                            else
                            {
                                Console.Write("请输入新的数据:");
                                arrays[index] = int.Parse(Console.ReadLine());
                            }
                        }
                    }
                    else if (input == "4")                 //用户输入4,则排序
                    {
                        if (arrays.Count == 0)
                        {
                            Console.Write("集合中没有元素,回车继续");
                            Console.ReadLine();
                        }
                        for (int i = 0; i < arrays.Count; i++)
                        {
                            for (int j = i + 1; j < arrays.Count; j++)
                            {
                                if (arrays[i] > arrays[j])
                                {
                                    int temp = arrays[i];
                                    arrays[i] = arrays[j];
                                    arrays[j] = temp;
                                }
                            }
                        }
                    }
                    Console.Clear();                  //每一个循环结束后清屏
    
  • 相关阅读:
    NSHashtable and NSMaptable
    架构的本质:构造定律与结合规则
    软件复用的基础和形式
    架构模式:循环模式、管道模式
    待整理
    functions and closures are reference types-函数和闭包是引用类型
    @autoclosure-可以让表达式自动封装成一个闭包:输入的是一个表达式
    Python 运算符优先级
    Linux下chkconfig命令详解
    Linux下Redis开机自启(Centos)
  • 原文地址:https://www.cnblogs.com/zhangzhiyong/p/9416509.html
Copyright © 2011-2022 走看看