天天看點

C#List清單

當我們使用了很多類型相同的資料的時候,我們通常使用數組來對這些資料進行存儲,但是這樣有一個缺點,就是數組的大小是固定的,如果我們大小可變的數組,那麼我們就需要List清單了,同時清單可以很友善進行的添加資料,删除資料等操作!

清單的建立

List<int> aList=new List<int>();//第一種建立方式
var bList=new List<int>();//第二種建立方式,比較常用
var cList=new List<int>(){1,2,3};//第三種建立方式,并初始化了三個值
           

清單的使用

aList.Add(1);       //1.添加資料
aList.Add(2);
Console.WriteLine(aList[0]);//2.通過索引擷取資料
Console.WriteLine(aList[1]);
//還有很多方法。。。
           

清單的存儲原理

清單内部的資料是使用數組進行存儲的,一個空的清單内部會有一個長度為0的數組,當給清單中添加元素的時候,清單的容量會擴大為4,當添加第5個的時候,容量會擴大到8,當添加第9個的時候,容量會擴大到16,容量會一直以2倍增加。

當清單的容量發生該表的時候,它就會建立一個新的數組,讓舊的數組的資料Copy()到新的數組裡面。

myList.Count	//擷取清單的長度
myList.Capacity //擷取清單的容量
           

清單的建立執行個體

首先建立一個表示人物資訊的結構體,如下:

public struct CharacterInfo
{
    public string name;
    public int price;
    public int damage;
    public int lives;
    public int attackRange;
    public int moveSpeed;
}
           

然後建立我們的List:

public List<CharacterInfo> characterInfos = new List<CharacterInfo>()
    {
        new CharacterInfo
        {
            name="小兵",price=30,damage=1,lives=10,attackRange=1,moveSpeed=2
        },
        new CharacterInfo
        {
            name="盔甲兵",price=50,damage=2,lives=30,attackRange=1,moveSpeed=2
        },
        new CharacterInfo
        {
            name="弓箭手",price=70,damage=2,lives=10,attackRange=6,moveSpeed=2
        }
}
           

這樣我們就建立了一個List來存儲我們的角色的資訊!

歡迎評價和指正,謝謝!