C# 集合与数组的区别 | C# 操作2个List进行比较

           int[] ar = new int[3];
 
           ar[0] = 1;//优点很明显,根据下标随机访问
           ar[1] = 2;//缺点也很明显,比如容量是固定的
           ar[2] = 3;//又或者访问的时候下标越界了……
           //ar[3] = 4;想多点就干瞪眼了
 
           List<int> list = new List<int>();
 
           list.Add(1);//优点很明显,再也不用为容量担心了
           list.Add(2);//随便加 /*添加一个元素2
           list.Insert(0, 10);//随便插  /*从第一个元素开始插入一个10
           list.RemoveAt(0);//删除元素也是这么犀利 /*移除指定索引处的元素,这是是指移除第一个元素


集合与数组的区别

数组属于集合的一种,但是集合有很多种啊! List,Array,Dictionary,Stack等等。每个都有不同的数据处理方式,需要分情况处理。

 

一般,数组是静态的,而集合是可以动态扩展容量,集合提供更多的成员方法,不过数组更轻量级,语言级支持,性能会更好。

集合表示一组可以通过遍历每个元素来访问的一组对象,特别是可以用foreach循环来访问它们。对象如果可以提供相关对象的引用,就是一个集合,称为枚举,它可以遍历集合中的数据项。更专业的说法是集合必须实现System.Collections.IEnumerable接口

 

与数组最接近的可能是List了。但list与Array相比最大的好处是可以添加的删除数据,而且长度也自动增长。

 

数组不能动态添加,它的大小是固定的,不浪费空间,访问速度快

集合是可以动态维护的,它可以不指定大小,也可以指定,但是相对于数组的访问速度相对慢些,传的是对象。

 

一、数组声明了它容纳的元素的类型,而集合不声明。

二、数组是静态的,一旦创建了就无法改变容量了。而集合是可以动态扩展容量,可以根据需要动态改变大小,集合提供更多的成员方法,能满足更多的需求。

三、数组只能容纳对象,而集合即可容纳对象还能容纳基本数据类型

 四、数组是一种可读/可写数据结构,没有办法创建一个只读数组。然而可以使用集合中提供的只读方式来实现,该方法将返回一个集合的只读版本。  


找出intA里有的元素,但是intB里没有的元素。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        //找出intA里有的元素,但是intB里没有的元素。
        static void Main(string[] args)
        {
            List<int> intA = new List<int> { 0, 5, 41, 7, 8, 5, 99, 4, 78 };

            List<int> intB = new List<int> { 5, 8, 55, 78, 3, 4, 86, 21 };

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

            foreach (int tem in intA) //遍历intA中的元素
            {

                if (!intB.Contains(tem))//假如intA中的元素tem不包含在intB中
                {

                    intC.Add(tem);                     //将tem添加到intC中

                }

            }

            foreach (int str in intC)  //遍历intC中的元素
            {

                Console.Write(str + " ");   //输出intC中的元素

            }

            Console.ReadKey();

        }
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值