C# 列表List的常用屬性和方法介紹
1.創(chuàng)建列表
(列表可以存儲任何類型的數(shù)據(jù),在創(chuàng)建列表對象的時(shí)候首先要指定你要?jiǎng)?chuàng)建的這個(gè)列表要存儲什么類型的)(泛型)
//創(chuàng)建列表 //方法一 List<int> intList = new List<int>();//創(chuàng)建了一個(gè)空的列表 通過類型后面的<>來表示這個(gè)列表存儲的數(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),遍歷所有的索引,通過索引訪問列表中的元素
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);//向指定索引位置插入元素,原來的元素向后移動(dòng)一位。插入索引不能超出索引范圍,插入索引最大可為scoreList.Count foreach (var temp in scoreList) { Console.Write(temp + " "); } Console.WriteLine(); Console.ReadKey();
4,[index]訪問元素
5,Count屬性訪問元素個(gè)數(shù)
6,RemoveAt()方法移除指定位置的元素
scoreList.RemoveAt(1);//removeAt(index)填入要?jiǎng)h除的索引
7,IndexOf()方法取得一個(gè)元素所在列表中的索引位置
LastIndexOf()上面的方法是從前往后搜索,這個(gè)是從后往前搜索,搜索到滿足條件的就停止,上面的兩個(gè)方法,如果沒有找到指定元素就返回-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()對列表中是元素進(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)行的存儲,一個(gè)空的列表內(nèi)部會有一個(gè)長度為0的數(shù)組,當(dāng)給列表中添加元素的時(shí)候,列表的容量會擴(kuò)大為4,如果添加第5個(gè)的時(shí)候,列表的大小會重新設(shè)置為8,如果添加第9個(gè)元素,列表容量會擴(kuò)大為16,依次增加。當(dāng)列表的中的容量發(fā)生改變的時(shí)候,它會創(chuàng)建一個(gè)新的數(shù)組,使用Array.Copy()方法將舊數(shù)組中的元素復(fù)制到新數(shù)組中。為了節(jié)省時(shí)間,如果事先知道要存儲的數(shù)據(jù)的個(gè)數(shù),就可以利用列表的構(gòu)造函數(shù)指定列表的容量大小,比如下面的
List intlist = new List(10);創(chuàng)建了一個(gè)初始容量為10的列表,當(dāng)容量不夠用的時(shí)候,每次都會按照原來容量的2倍進(jìn)行擴(kuò)容。
我們可以通過Capacity屬性獲取和設(shè)置容量
intList.Capacity = 100;
2,注意容量和列表中元素個(gè)數(shù)的區(qū)別,容量是列表中用于存儲數(shù)據(jù)的數(shù)組的長度通過Capacity 獲取,列表中的元素是我們添加進(jìn)去需要管理的數(shù)據(jù),通過Count獲取
例如
List<int> intList = new List<int>();//創(chuàng)建列表 for (int i = 0; i < 20; i++) { Console.WriteLine("列表長度:" + 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#語言編寫面向?qū)ο蟪绦蛟黾恿藰O大的效力和靈活性。不會強(qiáng)行對值類型進(jìn)行裝箱和拆箱,或?qū)σ妙愋瓦M(jìn)行向下強(qiáng)制類型轉(zhuǎn)換,所以性能得到提高。
性能注意事項(xiàng):在決定使用IList<T>還是使用ArrayList類(兩者具有類似的功能)時(shí),記住IList<T>類在大多數(shù)情況下執(zhí)行得更好并且是類型安全的。如果對IList<T>類的類型T 使用引用類型,則兩個(gè)類的行為是完全相同的。但是,如果對類型T 使用值類型,則需要考慮實(shí)現(xià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)文章
C#用Parallel.Invoke方法盡可能并行執(zhí)行提供的每個(gè)線程
本文主要介紹了C#用Parallel.Invoke方法盡可能并行執(zhí)行提供的每個(gè)線程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-01-01Unity使用攝像機(jī)實(shí)現(xiàn)望遠(yuǎn)鏡效果
這篇文章主要為大家詳細(xì)介紹了Unity攝使用像機(jī)實(shí)現(xiàn)望遠(yuǎn)鏡效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11C#創(chuàng)建安全的字典(Dictionary)存儲結(jié)構(gòu)
本文主要對存儲結(jié)構(gòu)字典(Dictionary)的一些常用方法進(jìn)行簡單的說明,并闡述了如何創(chuàng)建安全的字典(Dictionary)存儲結(jié)構(gòu)。希望對大家有所幫助2016-12-12C#客戶端HttpClient請求認(rèn)證及數(shù)據(jù)傳輸
本文詳細(xì)講解了C#客戶端HttpClient請求認(rèn)證及數(shù)據(jù)傳輸,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-01-01C#程序中創(chuàng)建、復(fù)制、移動(dòng)、刪除文件或文件夾的示例
這篇文章主要介紹了C#程序中創(chuàng)建、復(fù)制、移動(dòng)、刪除文件或文件夾的示例,即對System.IO命名空間中類的運(yùn)用,需要的朋友可以參考下2016-02-02C#多線程處理多個(gè)隊(duì)列數(shù)據(jù)的方法
這篇文章主要介紹了C#多線程處理多個(gè)隊(duì)列數(shù)據(jù)的方法,涉及C#線程與隊(duì)列的相關(guān)操作技巧,需要的朋友可以參考下2015-07-07