Unity C#集合
集合分为两种:非泛型集合,泛型集合。
非泛型集合需要引入: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#集合的更多相关文章
- Unity技巧集合
地址:http://blog.csdn.net/stalendp/article/details/17114135 这篇文章将收集unity的相关技巧,会不断地更新内容. 1)保存运行中的状态 uni ...
- Unity 3D Framework Designing(6)——设计动态数据集合ObservableList
什么是 『动态数据集合』 ?简而言之,就是当集合添加.删除项目或者重置时,能提供一种通知机制,告诉UI动态更新界面.有经验的程序员脑海里迸出的第一个词就是 ObservableCollection.没 ...
- Unity应用架构设计(6)——设计动态数据集合ObservableList
什么是 『动态数据集合』 ?简而言之,就是当集合添加.删除项目或者重置时,能提供一种通知机制,告诉UI动态更新界面.有经验的程序员脑海里迸出的第一个词就是 ObservableCollection.没 ...
- 【Unity】JsonUtility解析集合(collections)类型(List)
Unity自带的Json解析工具类JsonUtility居然没有API用于解析集合类型,也太鬼扯了吧. https://stackoverflow.com/questions/36239705/ser ...
- Unity程序协同问题,传送时屏幕变黑变亮的解决,常规操作的行为集合
在unity中运行某段程序时往往需要运行另外一段不相干但是却对功能上有需求的程序,比如进行场景传送,在传送点处,点击I键,屏幕慢慢变黑,场景传送到另外一个场景,场景又慢慢变亮.这里首先涉及两个物体,一 ...
- Unity Sprite Packer 问题集合
介绍 今天突发奇想用了下sprite packer 这个功能,基本用法网上教程一堆一堆的,这里就不赘述了. 在使用sprite packer过程中遇到一些问题,然后各种百度不到答案,最后和谐上网找到了 ...
- 【Unity|C#】基础篇(19)——集合库(Collections)
[学习资料] <C#图解教程>(第6章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu.c ...
- Unity C#最佳实践(上)
本文为<effective c#>的读书笔记,此书类似于大名鼎鼎的<effective c++>,是入门后提高水平的进阶读物,此书提出了50个改进c#代码的原则,但是由于主要针 ...
- 2DToolkit官方文档中文版打地鼠教程(三):Sprite Collections 精灵集合
这是2DToolkit官方文档中 Whack a Mole 打地鼠教程的译文,为了减少文中过多重复操作的翻译,以及一些无必要的句子,这里我假设你有Unity的基础知识(例如了解如何新建Sprite等) ...
随机推荐
- jquery事件与绑定事件
1.首先,我们来看一下经常使用的添加事件的方式: <input type="button" id="btn" value="click me!& ...
- wemall app商城源码中android按钮的三种响应事件
wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码中android按 ...
- java Thread和Runable的深刻理解
线程(Thread)是指程序的运行流程,多线程机制指同时运行多个程序块. Java中实现多线程有两种方法:继承Thread类:实现Runnable接口. Thread类的run()方法的制定者:接口R ...
- QT 中使用 c++ 的指针
之前没有接触过 c++,不过听说 c++ 的指针很坑,直到最近在用 QT / C++ 写一个 Linux Deepin 系统上检测网络流量和网速的小程序时,发现 c++ 的指针用起来真的特别蛋疼. 不 ...
- PHP测试题讲解(20161027)
注: 关联数组 关联数组,它的每个 ID 键都关联一个值.在存储有关具体命名的值的数据时,使用数值数组不是最好的做法.通过关联数组,我们可以把值作为键,并向它们赋值. 例子 1 在本例中,我们使用一个 ...
- django进阶补充
前言: 这篇博客对上篇博客django进阶作下补充. 一.效果图 前端界面较简单(丑),有两个功能: 从数据库中取出书名 eg: 新书A 在form表单输入书名,选择出版社,选择作者(多选),输入完毕 ...
- 10分钟精通SharePoint - SharePoint拓扑结构
SharePoint服务器角色:前端,应用程序和数据库服务器 应用程序服务:搜索.Office文档.User Profile和App等应用服务器 数据库类型:内容数据库.应用程序数据库和配置数据库 规 ...
- Intellij Idea自动加载改动文件和自动自动热部署加载
1:准备原料 我的Intellij Idea的版本是15. 之后tomcat自动加载修,你只需要在浏览器刷新一下页面即可. ************************************** ...
- NumPy入门及基础
1.1 NumPy 数组对象 NumPy中的ndarray是一个多维数组对象,该对象由两部分组成: 实际的数据; 描述这些数据的元数据. 大部分的数组操作仅仅修改元数据部分,而不改变底层的实际 ...
- 用代码控制退出APP
+ (void)exitApplication { AppDelegate *app = [UIApplication sharedApplication].delegate; UIWindow *w ...