集合分为两种:非泛型集合,泛型集合。

非泛型集合需要引入:System.Collections命名空间,其命名空间下的类有:

ArrayList表示大小根据需要动态增加的对象数组。

Hashtable表示根据键的哈希代码进行组织的键/值对的集合。

Queue表示对象的先进先出(FIFO)集合。

Stack表示对象的后进先出(LIFO)集合。

Stack  stack=new  Stack();

Stack<int>  stack=new  Stack<int>();

泛型集合需要引入:System.Collection.Generic命名空间,其命名空间下的类有:

Dictionary<TKey,TValue>表示根据键进行组织的键/值对的集合。

Dictionary<string,int>  dic=new  Dictionary<string,int>();

List<T>表示可根据索引访问对象的列表。提供用于对列表进行搜索,排序和修改的方法

Queue<T>表示对象的先进先出集合

SortedList<TKye,TValue>

表示根据键进行排序的键/值对的集合,而键基于的是相关 IComparer<T>实现

Stack<T>表示对象的后进先出集合

我要……

泛型集合选项

非泛型集合选项

线程安全或不可变集合选项

将项存储为键/值对以通过键进行快速查找

Dictionary<TKey, TValue>

Hashtable

(根据键的哈希代码组织的键/值对的集合。)

System.Collections.Concurrent.ConcurrentDictionary<TKey, TValue>

System.Collections.ObjectModel.ReadOnlyDictionary<TKey, TValue>

ImmutableDictionary(TKey, TValue) 类

按索引访问项

List<T>

System.Array

System.Collections.ArrayList

ImmutableList(T) 类

ImmutableArray 类

使用项先进先出 (FIFO)

Queue<T>

Queue

System.Collections.Concurrent.ConcurrentQueue<T>

ImmutableQueue(T) 类

使用数据后进先出 (LIFO)

Stack<T>

Stack

System.Collections.Concurrent.ConcurrentStack<T>

ImmutableStack(T) 类

按顺序访问项

LinkedList<T>

无建议

无建议

删除集合中的项或向集合添加项时接收通知。 (实现 INotifyPropertyChanged 和 System.Collections.Specialized.INotifyCollectionChanged)

System.Collections.ObjectModel.ObservableCollection<T>

无建议

无建议

已排序的集合

System.Collections.Generic.SortedList<TKey, TValue>

System.Collections.SortedList

ImmutableSortedDictionary(TKey, TValue) 类

ImmutableSortedSet(T) 类

数学函数的一个集

System.Collections.Generic.HashSet<T>

System.Collections.Generic.SortedSet<T>

无建议

ImmutableHashSet(T) 类

ImmutableSortedSet(T) 类

Unity C#集合的更多相关文章

  1. Unity技巧集合

    地址:http://blog.csdn.net/stalendp/article/details/17114135 这篇文章将收集unity的相关技巧,会不断地更新内容. 1)保存运行中的状态 uni ...

  2. Unity 3D Framework Designing(6)——设计动态数据集合ObservableList

    什么是 『动态数据集合』 ?简而言之,就是当集合添加.删除项目或者重置时,能提供一种通知机制,告诉UI动态更新界面.有经验的程序员脑海里迸出的第一个词就是 ObservableCollection.没 ...

  3. Unity应用架构设计(6)——设计动态数据集合ObservableList

    什么是 『动态数据集合』 ?简而言之,就是当集合添加.删除项目或者重置时,能提供一种通知机制,告诉UI动态更新界面.有经验的程序员脑海里迸出的第一个词就是 ObservableCollection.没 ...

  4. 【Unity】JsonUtility解析集合(collections)类型(List)

    Unity自带的Json解析工具类JsonUtility居然没有API用于解析集合类型,也太鬼扯了吧. https://stackoverflow.com/questions/36239705/ser ...

  5. Unity程序协同问题,传送时屏幕变黑变亮的解决,常规操作的行为集合

    在unity中运行某段程序时往往需要运行另外一段不相干但是却对功能上有需求的程序,比如进行场景传送,在传送点处,点击I键,屏幕慢慢变黑,场景传送到另外一个场景,场景又慢慢变亮.这里首先涉及两个物体,一 ...

  6. Unity Sprite Packer 问题集合

    介绍 今天突发奇想用了下sprite packer 这个功能,基本用法网上教程一堆一堆的,这里就不赘述了. 在使用sprite packer过程中遇到一些问题,然后各种百度不到答案,最后和谐上网找到了 ...

  7. 【Unity|C#】基础篇(19)——集合库(Collections)

    [学习资料] <C#图解教程>(第6章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu.c ...

  8. Unity C#最佳实践(上)

    本文为<effective c#>的读书笔记,此书类似于大名鼎鼎的<effective c++>,是入门后提高水平的进阶读物,此书提出了50个改进c#代码的原则,但是由于主要针 ...

  9. 2DToolkit官方文档中文版打地鼠教程(三):Sprite Collections 精灵集合

    这是2DToolkit官方文档中 Whack a Mole 打地鼠教程的译文,为了减少文中过多重复操作的翻译,以及一些无必要的句子,这里我假设你有Unity的基础知识(例如了解如何新建Sprite等) ...

随机推荐

  1. 强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning)

    强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning) 学习笔记: Reinforcement Learning: An Introductio ...

  2. Java面试09|多线程

    1.假如有Thread1.Thread2.Thread3.Thread4四条线程分别统计C.D.E.F四个盘的大小,所有线程都统计完毕交给Thread5线程去做汇总,应当如何实现? 把相互独立的计算任 ...

  3. MySQL优化四(优化表结构)

    body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-top: 10 ...

  4. 配置adb环境变量

    作为Android开发人员,会经常使用adb命令来进行push.pull.install.看数据库等.记录一下adb配置流程,以备后用. 在没有配置adb之前,我们打开Windows命令处理程序(cm ...

  5. 带金属光泽的模型shader的实现

    最近捣鼓了一下金属光泽的shader的实现,在一些高模展示的时候或者模型的金属部分的表现的时候,我们需要给模型添加一些金属光泽,表现出一个模型某些金属装备上有一定的反光.今天我主要写一种基于贴图实现的 ...

  6. Asp.NetCore1.1版本没了project.json,这样来生成跨平台包

    本章将要和大家分享的是Asp.NetCore1.1版本去掉了project.json后如何打包生成跨平台包, 为了更好跟进AspNetCore的发展,把之前用来做netcore开发的vs2015卸载后 ...

  7. Spring报错——Scope 'session' is not active for the current thread

    在对程序进行了一些修改后,运行发现spring报了这个错误,这是由于我设置了一个@Scope("session")导致的,现记录下解决方法. 解决方法: 将Scope设置为scop ...

  8. layer插件

    最近在做公司的官网,其中有用到layer这款插件,以前没有接触过,不过学下来觉得好用好学.下面分享一下我的学习心得. layer是web弹出层组件.在官网下载好layer后,把他部署到你的项目文件中( ...

  9. MVC插件实现

    本人第一篇随笔,在园子里逛了这么久,今天也记录一篇自己的劳动成果,也是给自己以后留个记录. 最近领导让我搞一下插件化,就是实现多个web工程通过配置文件进行组装.之前由于做过一个简单的算是有点经验,当 ...

  10. Spring中一个类的注入和引用是不一样的

    1.在Spring管理下的bean需要以下面这种方式引入(一种注入方式): private MgrService mgrService; public MgrService getMgrService ...