List数组

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

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

  

    

原文地址:https://www.cnblogs.com/yunquan/p/4699391.html