當我們使用了很多類型相同的資料的時候,我們通常使用數組來對這些資料進行存儲,但是這樣有一個缺點,就是數組的大小是固定的,如果我們大小可變的數組,那麼我們就需要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來存儲我們的角色的資訊!
歡迎評價和指正,謝謝!