大家好,我是蜀云泉。我的博文之中存在的不足之处希望大家包涵。
今天学习unity时,在实现某个功能的脚本中发现了List数组。关于List数组的问题我在学C#时已经接触了一点,但是我比较粗心和浮躁以前学的已经忘的差不多啦,所以今天抽空研究了一下,为了大家更好的理解,我将使用C#的方式来讲,下面我们切入正题:
一、声明方式:
第一种声明方式:
1 List<string> mylist = new List<string>();
第二种声明方式:
1 string[] a = {"1","2","3","4" }; 2 List<string> mylist = new List<string>(a);
可以看到这两种方式都是差不多的,只不过第二种在声明时顺便赋了初值而已,list<string>这个尖括号里面的是这个数组的类型,可以是string,int,double,还可以是类名,以类名为类型的方式在unity中会经常用到。
二、增:
增加有三种方式,第一种是增加一个:
1 mylist.Add("5");
第二种是直接增加一群:
1 string[] b = {"蜀","云","泉"}; 2 mylist.AddRange(b);
第三种是插入:
1 mylist.Insert(1,"hello");
这种增的方式有点特别,在下标为1的地方插入一个"hello",原来在mylist[1]的字符被挤到mylist[2]啦,哈哈,是不是有点鸠占鹊巢的味道。
三、删:
删除也有三种方式,第一种删除一个:
1 mylist.Remove("3");
第二种删除下标为*的元素:
1 mylist.RemoveAt(1);
第三种删除是从*下标开始删除*个元素:
1 mylist.RemoveRange(1,2);
这是从mylist[1]开始删除,删除两个元素,也就是说mylist[1],mylist[2]位置上的元素被删除掉了,后面的元素会补上来。
四、遍历:
遍历很简单啦,和C#中的数组遍历是一模一样的
1 foreach (string j in mylist) { 2 Console.WriteLine(j); 3 }
五、查:
在mylist中查找某个元素:
1 if(mylist.Contains("4")) 2 Console.WriteLine("有4这个元素");
六、顺序:
升序时如果是int的话就是从小到大排序的,代码如下:
1 int[] b = new int[] {1,54,8,2 }; 2 List<int> bj = new List<int>(b); 3 bj.Sort(); 4 5 foreach (int j in bj) { 6 Console.WriteLine(j); 7 }
效果图如下:
升序时如果你的List还是string类型的话会根据首字母进行排序,代码如下:
1 string[] a = {"a啊","q泉","y云","c柴" }; 2 List<string> mylist = new List<string>(a); 3 mylist.Sort(); 4 5 foreach (string j in mylist) { 6 Console.WriteLine(j); 7 }
效果图:
但如果你的string数组是纯汉字就没办法了。。。。
反转,就是把你现在的list的顺序给颠倒过来,注意这不是降序。直接上代码:
1 mylist.Reverse();
降序 ,降序很好实现,把你的list先升序,再反转就好了,这里不多说。
七、清空和数目:
清空:
1 mylist.Clear();
数目:
1 mylist.Count();
八、总结:
好了,list数组的问题现在告一段落吧,希望对需要的人有些帮助。我要去准备下一个问题了,呵呵,生活就是这样,有无数的难题在等待着你,如果放任不管,说不定哪天就成为你最大的敌人,正对它们就是为自己的明天负责。再见。