C# 列表List的常用屬性和方法介紹
1.創(chuàng)建列表
(列表可以存儲(chǔ)任何類型的數(shù)據(jù),在創(chuàng)建列表對(duì)象的時(shí)候首先要指定你要?jiǎng)?chuàng)建的這個(gè)列表要存儲(chǔ)什么類型的)(泛型)
//創(chuàng)建列表
//方法一
List<int> intList = new List<int>();//創(chuàng)建了一個(gè)空的列表 通過(guò)類型后面的<>來(lái)表示這個(gè)列表存儲(chǔ)的數(shù)據(jù)的類型
//方法二
var intlist1 = new List<string>();
//方法三
var intlist2 = new List<int>(){1,2,3};//創(chuàng)建了一個(gè)列表,里面的初始值有三個(gè)分別為 1 2 3
2.遍歷列表
for循環(huán),遍歷所有的索引,通過(guò)索引訪問(wèn)列表中的元素
for(int i=0;i<list.Count;i++){
//循環(huán)體list[i]
}
foreach遍歷
foreach(var temp in list){ //依次取得list中的每一個(gè)元素賦值給temp,并執(zhí)行循環(huán)體
//循環(huán)體 temp
}
3.列表的常用屬性方法
1,Capacity獲取容量大小
2,Add()方法添加元素
var scoreList = new List<int>();
scoreList.Add(12);
scoreList.Add(34);
scoreList.Add(56);
foreach (var temp in scoreList)
{
Console.Write(temp + " ");
}
Console.ReadKey();

3,Insert()方法插入元素
var scoreList = new List<int>(){100,200,300,100};
//遍歷列表
foreach (var temp in scoreList)
{
Console.Write(temp + " ");
}
Console.WriteLine();
scoreList.Insert(3, -100);//向指定索引位置插入元素,原來(lái)的元素向后移動(dòng)一位。插入索引不能超出索引范圍,插入索引最大可為scoreList.Count
foreach (var temp in scoreList)
{
Console.Write(temp + " ");
}
Console.WriteLine();
Console.ReadKey();

4,[index]訪問(wèn)元素
5,Count屬性訪問(wèn)元素個(gè)數(shù)
6,RemoveAt()方法移除指定位置的元素
scoreList.RemoveAt(1);//removeAt(index)填入要?jiǎng)h除的索引
7,IndexOf()方法取得一個(gè)元素所在列表中的索引位置
LastIndexOf()上面的方法是從前往后搜索,這個(gè)是從后往前搜索,搜索到滿足條件的就停止,上面的兩個(gè)方法,如果沒(méi)有找到指定元素就返回-1
var scoreList = new List<int>(){100,200,300,100};
//遍歷列表
foreach (var temp in scoreList)
{
Console.Write(temp + " ");
}
Console.WriteLine();
Console.WriteLine(scoreList.IndexOf(400));查找不到返回-1
Console.WriteLine(scoreList.IndexOf(100));
Console.WriteLine(scoreList.LastIndexOf(100));
Console.ReadKey();

8,Sort()對(duì)列表中是元素進(jìn)行從小到大排序
var scoreList = new List<int>(){100,200,300,100};
//遍歷列表
foreach (var temp in scoreList)
{
Console.Write(temp + " ");
}
Console.WriteLine();
scoreList.Sort();//排序
foreach (var temp in scoreList)
{
Console.Write(temp + " ");
}
Console.WriteLine();
Console.ReadKey();

關(guān)于列表的更多內(nèi)容
1,列表內(nèi)部數(shù)據(jù)是使用數(shù)組進(jìn)行的存儲(chǔ),一個(gè)空的列表內(nèi)部會(huì)有一個(gè)長(zhǎng)度為0的數(shù)組,當(dāng)給列表中添加元素的時(shí)候,列表的容量會(huì)擴(kuò)大為4,如果添加第5個(gè)的時(shí)候,列表的大小會(huì)重新設(shè)置為8,如果添加第9個(gè)元素,列表容量會(huì)擴(kuò)大為16,依次增加。當(dāng)列表的中的容量發(fā)生改變的時(shí)候,它會(huì)創(chuàng)建一個(gè)新的數(shù)組,使用Array.Copy()方法將舊數(shù)組中的元素復(fù)制到新數(shù)組中。為了節(jié)省時(shí)間,如果事先知道要存儲(chǔ)的數(shù)據(jù)的個(gè)數(shù),就可以利用列表的構(gòu)造函數(shù)指定列表的容量大小,比如下面的
List intlist = new List(10);創(chuàng)建了一個(gè)初始容量為10的列表,當(dāng)容量不夠用的時(shí)候,每次都會(huì)按照原來(lái)容量的2倍進(jìn)行擴(kuò)容。
我們可以通過(guò)Capacity屬性獲取和設(shè)置容量
intList.Capacity = 100;
2,注意容量和列表中元素個(gè)數(shù)的區(qū)別,容量是列表中用于存儲(chǔ)數(shù)據(jù)的數(shù)組的長(zhǎng)度通過(guò)Capacity 獲取,列表中的元素是我們添加進(jìn)去需要管理的數(shù)據(jù),通過(guò)Count獲取
例如
List<int> intList = new List<int>();//創(chuàng)建列表
for (int i = 0; i < 20; i++)
{
Console.WriteLine("列表長(zhǎng)度:" + intList.Capacity + " 元素個(gè)數(shù):" + intList.Count);
intList.Add(10);
}
Console.ReadKey();

補(bǔ)充:C#中List怎么用?List基礎(chǔ)用法匯總
C#中的List怎么樣?List<T>類是ArrayList類的泛型等效類,該類使用大小可按需動(dòng)態(tài)增加的數(shù)組實(shí)現(xiàn)IList<T>泛型接口。
泛型的好處:它為使用c#語(yǔ)言編寫面向?qū)ο蟪绦蛟黾恿藰O大的效力和靈活性。不會(huì)強(qiáng)行對(duì)值類型進(jìn)行裝箱和拆箱,或?qū)σ妙愋瓦M(jìn)行向下強(qiáng)制類型轉(zhuǎn)換,所以性能得到提高。
性能注意事項(xiàng):在決定使用IList<T>還是使用ArrayList類(兩者具有類似的功能)時(shí),記住IList<T>類在大多數(shù)情況下執(zhí)行得更好并且是類型安全的。如果對(duì)IList<T>類的類型T 使用引用類型,則兩個(gè)類的行為是完全相同的。但是,如果對(duì)類型T 使用值類型,則需要考慮實(shí)現(xiàn)和裝箱問(wèn)題。
C# List的基礎(chǔ)常用方法:
一、聲明:
1、List<T> mList = new List<T>();
T為列表中元素類型,現(xiàn)在以string類型作為例子:
List<string> mList = new List<string>();
2、List<T> testList =new List<T> (IEnumerable<T> collection);
以一個(gè)集合作為參數(shù)創(chuàng)建List:
string[] temArr = { "Ha", "Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku", "Locu"};
List<string> testList = new List<string>(temArr);
二、添加元素:
1、List. Add(T item)添加一個(gè)元素
例:
mList.Add("John");
2、List. AddRange(IEnumerable<T> collection)添加一組元素
例:
string[] temArr = {"Ha","Hunter","Tom","Lily","Jay","Jim","Kuku","Locu"};mList.AddRange(temArr);
3、Insert(intindex, T item);在index位置添加一個(gè)元素
例:
mList.Insert(1,"Hei");
三、遍歷List中元素:
foreach(TelementinmList)T的類型與mList聲明時(shí)一樣
{
Console.WriteLine(element);
}
例:
foreach(stringsinmList)
{
Console.WriteLine(s);
}
四、刪除元素:
1、List. Remove(T item)刪除一個(gè)值
例:
mList.Remove("Hunter");
2、List. RemoveAt(intindex);刪除下標(biāo)為index的元素
例:
mList.RemoveAt(0);
3、List. RemoveRange(intindex,intcount);
從下標(biāo)index開始,刪除count個(gè)元素
例:
mList.RemoveRange(3, 2);
五、判斷某個(gè)元素是否在該List中:
List. Contains(T item)返回true或false,很實(shí)用
例:
if(mList.Contains("Hunter"))
{
Console.WriteLine("There is Hunter in the list");
}
else
{
mList.Add("Hunter");
Console.WriteLine("Add Hunter successfully.");
}
六、給List里面元素排序:
List. Sort ()默認(rèn)是元素第一個(gè)字母按升序
例:
mList.Sort();
七、給List里面元素順序反轉(zhuǎn):
List. Reverse ()可以不List. Sort ()配合使用,達(dá)到想要的效果
例:
mList.Sort();
八、List清空:
List. Clear ()
例:
mList.Clear();
九、獲得List中元素?cái)?shù)目:
List. Count ()返回int值
例:
in tcount = mList.Count();
Console.WriteLine("The num of elements in the list: "+count);
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
WPF利用TextBlock實(shí)現(xiàn)查找結(jié)果高亮顯示效果
在應(yīng)用開發(fā)過(guò)程中,經(jīng)常遇到這樣的需求:通過(guò)關(guān)鍵字查找數(shù)據(jù),把帶有關(guān)鍵字的數(shù)據(jù)顯示出來(lái),同時(shí)在結(jié)果中高亮顯示關(guān)鍵字,所以本文就來(lái)和大家介紹一下如何利用TextBlock實(shí)現(xiàn)查找結(jié)果高亮顯示效果吧2023-08-08
C#使用百度Ueditor富文本框?qū)崿F(xiàn)上傳文件
這篇文章主要為大家詳細(xì)介紹了C#如何使用百度Ueditor富文本框?qū)崿F(xiàn)上傳文件(圖片,視頻等),文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-07-07
Unity實(shí)現(xiàn)透視滑動(dòng)列表
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)透視滑動(dòng)列表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07
Unity游戲開發(fā)之2048游戲的實(shí)現(xiàn)
2048是一款數(shù)字益智游戲,初始數(shù)字則是由2+2組成的基數(shù)4。在操作方面的不同則表現(xiàn)為一步一格的移動(dòng),變成更為爽快的一次到底。相同數(shù)字的方?jīng)r在靠攏、相撞時(shí)會(huì)相加。本文將通過(guò)Unity3D實(shí)現(xiàn)這一游戲,需要的可以參考一下2022-03-03

