c#数组与集合_将数组a和数组b合并为数组c

c#数组与集合_将数组a和数组b合并为数组cc#数组与集合

大家好,又见面了,我是你们的朋友全栈君。

数组在内存中是连续存储的,所以索引速度很快,增删改元素也很简单。但是数组是分配在一块连续的数据空间上的,因此分配空间的同时就必须确定好空间的大小,空间的连续也导致增删改及存储元素的效率很低。如在数组中添加元素,就需在内存空间中“腾出”一块地方,别的元素再往后“cuan”位置。还有在声明数组时,必须指定数组长度,长也不好短也不行,怎么办?于是集合出现了。

ArrayList示例:

static void Main(string[] args)
        {
            ArrayList list = new ArrayList();
            list.Add(true);
            list.Add(1);
            list.Add("张三");
            list.AddRange(new int[] { 1, 2, 3, 4, 5, 6, 7, 8 });
            list.AddRange(list);
            //list.Clear();//清除
            //list.Reverse();//反转
            //list.InsertRange(0, new string[] {"李四"});//指定位置插入集合
            if (list.Contains("张三"))//判断包含指定元素
            {
                Console.WriteLine("已经有这个屌丝啦~");
            }
            for (int i = 0; i < list.Count; i++)
            {
                Console.WriteLine(list[i]);
            }
            Console.ReadKey();
        }

List<>示例:

static void Main(string[] args)
        {
            List<int> lt = new List<int>();
            lt.Add(1);
            lt.Add(2);
            lt.Add(3);
            lt.AddRange(new int[] { 4, 5, 6, 7, 8, 9 });
            for (int i = 0; i < lt.Count; i++)
            {
                Console.WriteLine(lt[i]);
            }
            Console.ReadKey();
        }

Hashtable示例:

static void Main(string[] args)
        {
            Hashtable hash = new Hashtable();
            hash.Add(1, "张三");
            hash.Add(2, true);
            hash.Add(false, "错误的~");
            foreach (var h in hash.Keys)
            {
                Console.WriteLine("键是{0},值是{1}", h, hash[h]);
            }
            Console.ReadKey();
        }

Dictionary示例:

 static void Main(string[] args)
        {
            Dictionary<int, string> dir = new Dictionary<int, string>();
            dir.Add(1, "张三");
            dir.Add(2, "李四");
            dir[1] = "干掉你";
            foreach (KeyValuePair<int, string> kv in dir)
            {
                Console.WriteLine("键是{0},值是{1}", kv.Key, kv.Value);
            }
            Console.ReadKey();
        }

小结:

ArrayList集合对数据类型没有要求,是因为ArrayList集合中存储的数据类型默为object类型,其它类型与object类型进行转换时就会发生“拆箱装箱”操作,而List集合在声明集合时就确定了数据类型,所以List集合与ArrayList集合相比是相对安全的哦。键值对集合与字典集合同理。

转载于:https://www.cnblogs.com/huangxuQaQ/p/10732121.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106872.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 磁盘初始化的过程

    磁盘初始化的过程1.低级初始化(物理初始化)1.1将磁盘分成扇区以便读写操作。1.2为每个扇区采用特别的数据结构2.磁盘分区将磁盘分为由一个或多个柱面组成的分区(C盘D盘)3.逻辑格式化3.1创建文件系统(根目录等)3.2将初始文件系统的数据结构存储到磁盘上(空闲、已分配的空间及一个空目录)…

    2022年9月21日
    3
  • winform使用SplitContainer控件[通俗易懂]

    winform使用SplitContainer控件[通俗易懂]在Windows资源管理器中,当把鼠标指针移动到TreeView控件和ListView控件之间时,可以左右拖动鼠标调整TreeView控件和ListView控件在主窗口中的大小比例,以适应不同显示内容的需要。我们可以使用SplitContainer控件实现这种功能。  可

    2022年7月18日
    97
  • Apache ab压力测试工具Window下载和用法详解「建议收藏」

    Apache ab压力测试工具Window下载和用法详解「建议收藏」Apache ab压力测试工具Window下载和用法详解

    2022年4月24日
    99
  • HDU 6057 – Kanade’s convolution | 2017 Multi-University Training Contest 3

    HDU 6057 – Kanade’s convolution | 2017 Multi-University Training Contest 3

    2022年3月5日
    42
  • Windows套接字CAsyncSocket类的使用「建议收藏」

    Windows套接字CAsyncSocket类的使用「建议收藏」TCP编程的服务器端一般步骤是:1、创建一个CAsyncSocket或CSocket类或其子类对象A,用于监听客户端连接,然后通过Create函数设定端口号和协议类型为SOCK_STREAM。2、开启监听,用函数Listen();3、接收客户端上来的连接,用函数Accept(&B);并且把连接连接的对象存到B中,以便通信使用。4、当客户端发送来消息时,会触发OnReceive函数…

    2022年8月18日
    5
  • python 报表开发工具_自定义报表 开源

    python 报表开发工具_自定义报表 开源BIRT报表是一款非常流行的开源报表开发工具。拥有和Dreamweaver一般的操作界面,可以像画table一样画报表,生成图片,导出Excel,html分页样样齐全,样式和script设置简单。PentahoReportDesigner是一款所见即所得的开源报表设计工具。在设计报表的时候,用户可以随意拖放和设置各种报表的控件,还可以快速方便地设置报表的数据来源。在报表的设计过程中,用户可…

    2022年10月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号