首頁 >後端開發 >C#.Net教程 >c# 泛型List的定義、功能、用法

c# 泛型List的定義、功能、用法

高洛峰
高洛峰原創
2016-12-15 15:38:111405瀏覽

定義:List類別表示可透過索引存取的物件的強型別列表,提供用於對列表進行搜尋、排序和操作的方法。


作用:
泛型最常見的用途是泛型集合
我們在建立列表類別時,列表項目的資料型別可能是int,string或其它型別,如果對列表類別的處理方法相同,
就沒有必要事先指定資料類型,留待列表類別實例化時再指定。相當於把資料型別當成參數,這樣可以最
大限度地重複使用程式碼,保護類型的安全性以及提升效能。

 

List的一般用法
所屬命名空間: System.Collections.Generic
public class List:IList,Icollection,IEnumerable,IList,Icollection,Ienumer] >是ArrayList類別的泛型等效類,該類別使用大小可依需求動態增加的陣列實作IList泛型介面

 

(1)聲明Listmlist = new List( );

 eg: string[] Arr = {"a","b","c"};
     List mlist = new List(Arr);
 

(2)增加一個元素List.Add(T item) 

   eg: mlist.Add("d");


 

(3)新增集合元素

   eg: string[] Arr2 ={"f","g"."h"} ;

       mlist.AddRange(Arr2);

 

(4)在index位置上新增一個元素Insert(int index,T item)

 )遍歷List中元素


  foreach(T element in mlist) T的類型與mlist聲明時一樣

     {

  〴

    eg:

    foreach(string s in mlist)

          {

           {
       .WriteLine(s);
           }

 


(6)刪除元素

    List.Remove(T item)刪除元素

    List.Remove(T itemem);   List.RemoveAt(int index) ;刪除下標為index的元素

    eg: mlist.RemoveAt(0);

    

    List.RemoveRange(int index,int count);〠下標);

 

 


(7)判斷某個元素是否在該List中

    List.Contains(T item)  Console.WriteLine("g存在清單中");
    else

       mlist.Add("g");

 

(8)給預設元素在裡面排序.Sort()每一個字母升序是元素。 eg: mlist.Sort();

 


(9)給List裡面元素順序反轉List.Reverse() 可以與List.Sort()配合使用

 

(10)ListList.Clear()清空

   eg: mlist.Clear();

(11)取得List中元素數目List.Count() 回傳int值

   eg: mlist.count();
 

5

(1)List.FindAll方法:檢索所有與指定謂詞所定義的條件相符的元素 

    

    class program

    {
          student stu = new student();

stu.Name="arron";

         List students= new List();
        ;

         FindName myname = new FindName("arron");

         foreach(student s in students.FindAll(new Predicate(myname.IsName)))

   

    public class student
    {
       public string Name{get;set;}
          {
            return string.Format("姓名:{0}",Name);
}
     }

    public class FindName

    {

      private string _name;
      public bool IsName(student s)
       { return (s.Name==_name) ?true:false;}
    }

 

(2)List.Find方法搜尋與指定謂詞所定義的條件相符的元素,並傳回整個List中的第一個符合元素🎀 eg: //Predicate是對方法的委託,如果傳遞給它的物件與委託定義的條件匹配,則該方法傳回true,當前List的元素

  被逐個傳遞給Predicate委託,並在List中間前移動,從第一個元素開始,到最後一個元素結束,當找到匹配項

  時處理停止


  第一種方法委託給拉姆達表達式:

  eg:            if (name.length>3)

             return true;

          return false;        eg:

     public bool ListFind(string name)

        {

        > 3)

            {

                        return false;

        }

      這兩種方法的結果是相同的兩種方法

) 的兩種方法。 Predicate match);決定是否List 中的每個元素都與指定的謂詞所定義的條件相符。用法與List.Find相同。

(4) List.TrueForAll方法:  決定是否 List 中的每個元素都與指定的謂詞所定義的條件相符。

 public bool TrueForAll(Predicate match);

 

(5) List.Take(n):  取得前n行回傳值為IEnumetable,T的型別與List的型別一樣與List的型別相同

E.g.:

IEnumerable takeList=  mList.Take(5);

                     Console.WriteLine("element in takeList: " + s);

          }

       此時takeList存放的元素是mList中的前5個

 

(6) List.Where方法:檢索所有與指定謂詞所定義的條件相符的元素。跟List.FindAll方法類似。

E.g.:


            IEnumerable whereList = mList.Where(name =>                  if (name.Length > 3)

                       return true;

                   

                    {

                           }

               );      {

             Console.WriteLine("element in subList: "+s);

      subList儲存的就是所有長度大於3的元素

 

 

(7)List.RemoveAll方法:移除所有與指定的謂詞所定義的條件相符的元素。

public int RemoveAll(Predicate match);

E.g.:

            mList.RemoveAll(name =>

                {

                    if (name.Length > 3)

                    {

                        return true;

                    }

                    else

                    {

                        return false;

                    }

                });

            foreach (string s in mList)

            {

                Console.WriteLine("element in mList:     " + s);

            }

      這時mList儲存的就是移除長度大於3之後的元素。

更多c# 泛型List的定義、作用、用法相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn