Unity学习(C#)——列表List的创建和使用

集合类:数组的大小是固定的,有时候不方便,需要使用集合来管理,列表是集合类的一组,且可以方便的添加和删除数据。
创建和访问、插入数据。

 static void Main(string[] args)
        {
            List<int> scoreList = new List<int>();
            var scoreList1 = new List<int>();
            var scoreList2 = new List<int>(){1,2,3};//有初始值的列表
            scoreList.Add(12);//向列表中插入数据
            Console.WriteLine(scoreList2[0]);//访问列表
            Console.ReadKey();
        }

列表内部的数据其实也是数组存储的,只不过长度会变化,空列表就是0.当列表的容量发生变化的时候,会创建新的数组,通过Array.Copy()将原来数组中的元素拷贝到新数组中,且是4,6,8,16这样变化的,不是一个个慢慢增加的。

 List<int> scoreList = new List<int>();
            for (int i = 0; i < 20;i++ )
            {
                Console.WriteLine("CAPACITY" + scoreList.Capacity + "COUNT" + scoreList.Count);
                scoreList.Add(2);
            }
                Console.ReadKey();

Unity学习(C#)——列表List的创建和使用_第1张图片
所以如果事先知道列表需要大小,直接规定会比较方便。
List scoreList = new List(10);
而且这样的话,如果不够用,会按照设定的2倍扩大。下次就是20,40
设置容量:scoreList.Capacity=100;
容量和元素个数不一定一样,容量是数组的长度。

 static void Main(string[] args)
        {
       
            var scoreList2 = new List<int>(){1,2,3};//有初始值的列表         
            Console.WriteLine(scoreList2.Capacity);
            Console.WriteLine(scoreList2.Count);
            Console.ReadKey();
        }

结果是3 4

列表遍历
方法一:
var scoreList1 = new List() {1,2,35,78,900,57899,34,24 };
for (int i = 0; i < scoreList1.Count;i++)
{
Console.WriteLine(scoreList1[i]);
}
方法二:
var scoreList1 = new List() {1,2,35,78,900,57899,34,24 };
foreach(int temp in scoreList1)
{
Console.WriteLine(temp + " ");
}

其他功能
1.scoreList1.IndexOf();//搜索从零开始第一个相同数所在位置,从前往后搜索

 var scoreList1 = new List<int>() {1,2,35,78,900,57899,34,24,35};
 int index = scoreList1.IndexOf(78);//返回元素所在索引,这里返回3
 Console.WriteLine(index);

2.scoreList1.LastIndexOf();//从后往前搜索
3.scoreList1.RemoveAt();//移除指定位置数据

var scoreList1 = new List<int>() {1,2,35,78,900,57899,34,24,35};
scoreList1.RemoveAt(0);

移除后变成了{2,35,78,900,57899,34,24,35};
4.scoreList1.Insert(6, -1);

 var scoreList1 = new List<int>() {1,2,35,78,900,57899,34,24,35};
scoreList1.Insert(6, -1);//向指定位置插入数据

添加后变成了{1,2,35,78,900,57899,-1,34,24,35};
5.scoreList1.Sort();//从小到大排序列表

你可能感兴趣的:(Unity学习(C#)——列表List的创建和使用)