C# 各种集合

本文详细介绍了C#中的各种集合类型,包括数组、ArrayList、List、LinkedList、Queue、Stack、HashSet、SortedSet、HashTable、Dictionary、SortedDictionary和SortedList。文章重点讲述了这些集合的特点和应用场景,如数组的固定长度、链表的增删优势、哈希集合的去重功能等,并提供了相关代码示例。
摘要由CSDN通过智能技术生成

目录

一、前期准备

二、各类集合概念

三、数组

1、Array -- 数组

2、ArrayList -- 数组列表

3、 List -- 列表 -- (推荐)

四、链表

1、 LinkedList -- 链表

2、 Queue -- 队列 -- (先进先出)

3、Stack -- 栈 -- (先进后出)

五、集合

1、 HashSet -- 哈希集合 -- (去重)

2、SortedSet -- 排序集合 -- (去重、排序)

六、Key-Value

1、 HashTable -- 哈希表

2、 Dictionary -- 字典 -- (推荐)

3、 SortedDictionary -- 排序字典 -- (排序)

4、SortedList -- 排序列表 -- 排序 -- 重复Key不可用Add


一、前期准备

引入using:

using System;
using System.Collections;
using System.Collections.Generic;

二、各类集合概念

----------------数组----------------

Array -- 数组
    内存连续分配,
    数据类型一样,
    可以坐标访问,
    读取快,增删慢,长度固定
    
ArrayList -- 数组列表
    内存连续分配,
    数据类型不一样,任何类型做object处理
    可以坐标访问,
    长度可变
    
List -- 列表
    本质是ArrayList
    内存连续分配
    长度可变
    读取快,增删慢

----------------链表----------------

LinkedList -- 链表
    元素不连续分配,
    节点值可以重复
    找元素只能遍历,查找不方便
    增删比较方便
    
Queue -- 队列
    本质是链表
    元素不连续分配
    先进先出
    
Stack -- 栈
    本质是链表
    先进后出

----------------集合----------------

HashSet -- 哈希表
    内容分散
    数据不可重复(去重)
    适用于:统计IP,好友合并
    
SortedSet -- 排序表
    内容分散
    数据自动排序,
    数据不重复(去重)

----------------键值对----------------

HashTable -- 哈希表
    key-value 类型
    体积动态添加
    将key计算一个地址,然后放入key - value
    查找时,若地址与数据可以不对,则+1查找
    查:一次定位 增删:一次定位 
    增删改查快
    浪费空间,数据太多,重复定位,效率会降低
    
Dictionary -- 字典
    key-value 类型
    本质是HashTable
    增删改查快
    输出按插入的顺序
    
SortedDictionary -- 排序字典
    key-value 类型
    本质是HashTable
    增删改查快
    自动排序,输出
    
 SortedList -- 排序列表
    重复的key,用Add会报错

三、数组

1、Array -- 数组

    内存连续分配
    数据类型一样,
    可以坐标访问
    读取快,增删慢,长度固定

 代码编写: 

internal class Program
{
    static void Main(string[] args)
    {
        //Array配置
        int[] intArray = new int[2];

        //Array 使用
        intArray[0] = 1;

        string[] stringArray = new string[] { "abc", "def" };

        //输出显示
        for (int i = 0;i < intArray.Length; i++)
        {
            Console.WriteLine(intArray[i]);
        }
        Console.WriteLine(stringArray[0]);
        Console.WriteLine(stringArray[1]);
    }
}

2、ArrayList -- 数组列表

    内存连续分配,
    数据类型不一样,任何类型做object处理
    可以

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程通过实际项目融入常用开发技术架构,讲授风格独特,提供详细上课日志及答疑,赠送配套的项目架构源码注释详细清晰且表达通俗,均能直接在实际项目中应用,正真的物超所值,价格实惠任务作业:综合运用《C#/.Net企业级系统架构设计实战精讲教程》课程所学知识技能设计一个学生成绩管理系统的架构。要求:1.系统基于MVC的三层架构,各层单独建不同的解决方案文件夹。2.采用Model First开发方式,设计架构时只需要设计学生表(TbStudent)和课程表(TbCourse)。学生表必须有的字段是ID、stuName、age;课程表必须有的字段是ID、courseName、content。3.数据访问层采用Entity Framework或NHibernate来实现,必须封装对上述表的增删改查方法。4.必须依赖接口编程,也就是必须要有数据访问层的接口层、业务逻辑层的接口层等接口层。层层之间必须减少依赖,可以通过简单工厂或抽象工厂。5.至少采用简单工厂、抽象工厂、Spring.Net等技术中的2种来减少层与层之间的依赖等。6.封装出DbSession类,让它拥有所有Dal层实例和SaveChanges方法。7.设计出数据访问层及业务逻辑层主要类的T4模板,以便实体增加时自动生成相应的类。8.表现层要设计相关的控制器和视图来验证设计的系统架构代码的正确性,必须含有验证增删改查的方法。9.开发平台一定要是Visual Studio平台,采用C#开发语言,数据库为SQL Server。10.提交整个系统架构的源文件及生成的数据库文件。(注意: 作业需写在CSDN博客中,请把作业链接贴在评论区,老师会定期逐个批改~~)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值