大家好,我是蜀云泉。我的博文之中存在的不足之处希望大家包涵。

    今天学习unity时,在实现某个功能的脚本中发现了List数组。关于List数组的问题我在学C#时已经接触了一点,但是我比较粗心和浮躁以前学的已经忘的差不多啦,所以今天抽空研究了一下,为了大家更好的理解,我将使用C#的方式来讲,下面我们切入正题:

   一、声明方式:

    第一种声明方式:

1    List<string> mylist = new List<string>();

    第二种声明方式:

    string[] a = {"","","","" };
List<string> mylist = new List<string>(a);

    可以看到这两种方式都是差不多的,只不过第二种在声明时顺便赋了初值而已,list<string>这个尖括号里面的是这个数组的类型,可以是string,int,double,还可以是类名,以类名为类型的方式在unity中会经常用到。

   二、增:

    增加有三种方式,第一种是增加一个:

1   mylist.Add("");

        第二种是直接增加一群:   

    string[] b = {"蜀","云","泉"};
mylist.AddRange(b);

    第三种是插入:

    mylist.Insert(,"hello");

    这种增的方式有点特别,在下标为1的地方插入一个"hello",原来在mylist[1]的字符被挤到mylist[2]啦,哈哈,是不是有点鸠占鹊巢的味道。

   三、删:

    删除也有三种方式,第一种删除一个:  

     mylist.Remove("");

    第二种删除下标为*的元素: 

     mylist.RemoveAt();

    第三种删除是从*下标开始删除*个元素:   

1     mylist.RemoveRange(,);

    这是从mylist[1]开始删除,删除两个元素,也就是说mylist[1],mylist[2]位置上的元素被删除掉了,后面的元素会补上来。

   四、遍历:

    遍历很简单啦,和C#中的数组遍历是一模一样的 

     foreach (string j in mylist) {
Console.WriteLine(j);
}

   五、查:

    在mylist中查找某个元素:  

    if(mylist.Contains(""))
Console.WriteLine("有4这个元素");

   六、顺序:

    升序时如果是int的话就是从小到大排序的,代码如下: 

   int[] b = new int[] {,,, };
  List<int> bj = new List<int>(b);
  bj.Sort(); 5   foreach (int j in bj) {
Console.WriteLine(j);
  }

    效果图如下:

    

    升序时如果你的List还是string类型的话会根据首字母进行排序,代码如下:  

    string[] a = {"a啊","q泉","y云","c柴" };
List<string> mylist = new List<string>(a);
mylist.Sort(); foreach (string j in mylist) {
Console.WriteLine(j);
}

    效果图:

    

    但如果你的string数组是纯汉字就没办法了。。。。

    反转,就是把你现在的list的顺序给颠倒过来,注意这不是降序。直接上代码:

    mylist.Reverse();

    降序 ,降序很好实现,把你的list先升序,再反转就好了,这里不多说。

    七、清空和数目:

    清空:

    mylist.Clear();

    数目:

   mylist.Count();

   八、总结:

    好了,list数组的问题现在告一段落吧,希望对需要的人有些帮助。我要去准备下一个问题了,呵呵,生活就是这样,有无数的难题在等待着你,如果放任不管,说不定哪天就成为你最大的敌人,正对它们就是为自己的明天负责。再见。

  

    

List数组的更多相关文章

  1. javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈

    Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...

  2. 探究javascript对象和数组的异同,及函数变量缓存技巧

    javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...

  3. 编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)

    建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法 ...

  4. 了解PHP中的Array数组和foreach

    1. 了解数组 PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.详细的解释可参见:PHP.net中的Array数组    . 2.例子:一般的数组 这里,我 ...

  5. JavaScript权威指南 - 数组

    JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...

  6. JavaScript常见的五种数组去重的方式

    ▓▓▓▓▓▓ 大致介绍 JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 先来建立一个数组 var arr = [1,2,3,3,2,'我','我',34,'我的',NaN,NaN ...

  7. js:给定两个数组,如何判断他们的相对应下标的元素类型是一样的

    题目: 给Array对象原型上添加一个sameStructureAs方法,该方法接收一个任意类型的参数,要求返回当前数组与传入参数数组(假定是)相对应下标的元素类型是否一致. 假设已经写好了Array ...

  8. javascript数组查重方法总结

    文章参考地址:http://blog.csdn.net/chengxuyuan20100425/article/details/8497277 题目 对下列数组去重: var arr = ['aa', ...

  9. 掌握javascript中的最基础数据结构-----数组

    这是一篇<数据结构与算法javascript描述>的读书笔记.主要梳理了关于数组的知识.部分内容及源码来自原作. 书中第一章介绍了如何配置javascript运行环境:javascript ...

  10. 小兔JS教程(四)-- 彻底攻略JS数组

    在开始本章之前,先给出上一节的答案,参考答案地址: http://www.xiaotublog.com/demo.html?path=homework/03/index2 1.JS数组的三大特性 在J ...

随机推荐

  1. MySQL 练习题 附答案,未完

    综合练习题 表结构 整合一下方便查看 teacher  student  course scors 练习题 1.自行创建测试数据 create table student( sid int prima ...

  2. Linux block(1k) block(4k) 换算 gb

    输入 df  显示1k blocks  大小   再输入  df -h  显示 gb换算大小  结论 block(1k) 计算公式为:  block(1k)   /1024/1000  = xx gb ...

  3. c# Redis 使用

    1.服务端两个版本窗口版与安装windows服务版 1.1.窗口版 下载地址:https://github.com/dmajkic/redis/downloads redis-server.exe:服 ...

  4. 【hdu6185】Covering(骨牌覆盖)

    2017ACM/ICPC广西邀请赛-重现赛1004Covering 题意 n*4的格子,用1*2和2*1的砖块覆盖.问方案数(mod 1e9+7).(n不超过1e9) 题解 递推了个式子然后错位相减. ...

  5. Nagios 监控windows server Apache 服务

    监控机需要使用check_apachestatus.pl插件插件下载地址:https://exchange.nagios.org/directory/Tutorials/Other-Tutorials ...

  6. LOJ #2048. 「HNOI2016」最小公倍数

    题意 有 \(n\) 个点,\(m\) 条边,每条边连接 \(u \Leftrightarrow v\) 且权值为 \((a, b)\) . 共有 \(q\) 次询问,每次询问给出 \(u, v, q ...

  7. Hdoj 2289.Cup 题解

    Problem Description The WHU ACM Team has a big cup, with which every member drinks water. Now, we kn ...

  8. zabbix3.4.6之自动发现与自动注册

    在zabbix中添加新主机时,是需要手动添加,但在zabbix的Action里有两项功能,自动发现与自动注册,运用这两个功能中任意一个都可以实现自动添加机器,但添加的主机名是IP地址. 自动发现:添加 ...

  9. linux test条件测试

    语法 test EXPRESSION [ EXPRESSION ] [[ EXPRESSION ]] 1.数值测试 -eq 是否等于 -ne 是否不等 -gt 是否大于 -ge 是否大于等于 -lt ...

  10. 添加默认安全组规则-openstack

    if [ "$1" ] ;then neutron security-group-rule-create --direction ingress --ethertype ipv4 ...