當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C# List用法及代碼示例


List<T> 類表示可以通過索引訪問的對象列表。它位於 System.Collections.Generic 命名空間下。 List 類可用於創建不同類型的集合,如整數、字符串等。List<T> 類還提供搜索、排序和操作列表的方法。

特征:

  • 它與數組不同。 AList<T> 可以動態調整大小但數組不能。
  • List<T> 類可以接受 null 作為引用類型的有效值,並且還允許重複元素。
  • 如果計數等於容量,則通過重新分配內部數組自動增加列表的容量。在添加新元素之前,現有元素將被複製到新數組中。
  • List<T> 類是通過實現 IList<T> 通用接口實現的 ArrayList 類的通用等效項。
  • 此類可以使用相等比較器和排序比較器。
  • List<T> 類默認不排序,元素通過從零開始的索引訪問。
  • 對於非常大的 List<T> 對象,您可以增加最大容量可達 20 億個元素在 64 位係統上,通過在運行時環境中將配置元素的啟用屬性設置為 true 來實現。

Constructors

構造函數 說明
列表<T>() 初始化 List<T> 類的新實例,該實例為空且具有默認初始容量。
列表<T>(IEnumerable<T>) 初始化 List<T> 類的新實例,該實例包含從指定集合複製的元素,並具有足夠的容量來容納複製的元素數量。
列表<T>(Int32) 初始化 List<T> 類的新實例,該實例為空且具有指定的初始容量。

例子:


// C# program to create a List<T> 
using System; 
using System.Collections.Generic; 
  
class Geeks { 
  
    // Main Method 
    public static void Main(String[] args) 
    { 
  
        // Creating a List of integers 
        List<int> firstlist = new List<int>(); 
  
        // displaying the number 
        // of elements of List<T> 
        Console.WriteLine(firstlist.Count); 
    } 
} 

輸出:

0

Properties

屬性 說明
Capacity 獲取或設置內部數據結構在不調整大小的情況下可以容納的元素總數。
Count 獲取 List<T> 中包含的元素數。
項目[Int32] 獲取或設置指定索引處的元素。

例子:


// C# program to illustrate the 
// Capacity Property of List<T> 
using System; 
using System.Collections.Generic; 
  
class Geeks { 
  
    // Main Method 
    public static void Main(String[] args) 
    { 
  
        // Creating a List of integers 
        // Here we are not setting 
        // Capacity explicitly 
        List<int> firstlist = new List<int>(); 
  
        // adding elements in firstlist 
        firstlist.Add(1); 
        firstlist.Add(2); 
        firstlist.Add(3); 
        firstlist.Add(4); 
  
        // Printing the Capacity of firstlist 
        Console.WriteLine("Capacity Is: " + firstlist.Capacity); 
  
        // Printing the Count of firstlist 
        Console.WriteLine("Count Is: " + firstlist.Count); 
  
        // Adding some more 
        // elements in firstlist 
        firstlist.Add(5); 
        firstlist.Add(6); 
  
        // Printing the Capacity of firstlist 
        // It will give output 8 as internally 
        // List is resized 
        Console.WriteLine("Capacity Is: " + firstlist.Capacity); 
  
        // Printing the Count of firstlist 
        Console.WriteLine("Count Is: " + firstlist.Count); 
    } 
} 

輸出:

Capacity Is: 4
Count Is: 4
Capacity Is: 8
Count Is: 6

Methods

方法 說明
Add(T) 將一個對象添加到 List<T> 的末尾。
AddRange(IEnumerable<T>) 將指定集合的元素添加到 List<T> 的末尾。
AsReadOnly() 返回當前集合的隻讀 ReadOnlyCollection<T> 包裝器。
List BinarySearch() 使用二分搜索算法來定位已排序 List<T> 或其一部分中的特定元素。
Clear() 從 List<T> 中刪除所有元素。
Contains(T) 確定元素是否在 List<T> 中。
ConvertAll(Converter) 將當前 List<T> 中的元素轉換為另一種類型,並返回包含轉換後的元素的列表。
CopyTo() 將 List<T> 或其一部分複製到數組中。
Equals(Object) 確定指定對象是否等於當前對象。
存在(謂詞<T>) 確定 List<T> 是否包含與指定謂詞定義的條件匹配的元素。
查找(謂詞<T>) 搜索與指定謂詞定義的條件匹配的元素,並返回整個 List<T> 中的第一個匹配項。
FindAll(謂詞<T>) 檢索與指定謂詞定義的條件匹配的所有元素。
List.FindIndex() 搜索與指定謂詞定義的條件匹配的元素,並返回 List<T> 或其一部分中第一次出現的從零開始的索引。如果未找到符合條件的項目,此方法將返回 -1。
FindLast(謂詞<T>) 搜索與指定謂詞定義的條件匹配的元素,並返回整個 List<T> 中最後一次出現的元素。
List FindLastIndex()方法 搜索與指定謂詞定義的條件匹配的元素,並返回 List<T> 或其一部分中最後一次出現的從零開始的索引。
ForEach(操作<T>) 對 List<T> 的每個元素執行指定的操作。
GetEnumerator() 返回一個循環訪問 List<T> 的枚舉器。
GetHashCode() 用作默認的哈希函數。
獲取範圍(Int32,Int32) 創建源 List<T> 中一係列元素的淺拷貝。
GetType() 獲取當前實例的類型。
IndexOf() 返回 List<T> 或其一部分中第一次出現某個值的從零開始的索引。
插入(Int32,T) 將元素插入 List<T> 中指定索引處。
InsertRange(Int32, IEnumerable<T>) 將集合的元素插入到 List<T> 的指定索引處。
LastIndexOf() 返回 List<T> 或其一部分中最後一次出現的值的從零開始的索引。
MemberwiseClone() 創建當前對象的淺拷貝。
Remove(T) 從 List<T> 中刪除第一次出現的特定對象。
刪除全部(謂詞<T>) 刪除與指定謂詞定義的條件匹配的所有元素。
刪除 (Int32) 刪除 List<T> 指定索引處的元素。
刪除範圍(Int32,Int32) 從 List<T> 中刪除一係列元素。
Reverse() 反轉 List<T> 或其一部分中元素的順序。
Sort() 使用指定或默認的 IComparer<T> 實現或提供的 Comparison<T> 委托對 List<T> 中的元素或部分元素進行排序以比較列表元素。
ToArray() 將 List<T> 的元素複製到新數組。
ToString() 返回表示當前對象的字符串。
TrimExcess() 如果 List<T> 中元素的實際數量小於閾值,則將容量設置為該數量。
TrueForAll(謂詞<T>) 確定 List<T> 中的每個元素是否與指定謂詞定義的條件匹配。

示例 1:


// C# Program to check whether the 
// element is present in the List 
// or not 
using System; 
using System.Collections.Generic; 
  
class Geeks { 
  
    // Main Method 
    public static void Main(String[] args) 
    { 
  
        // Creating an List<T> of Integers 
        List<int> firstlist = new List<int>(); 
  
        // Adding elements to List 
        firstlist.Add(1); 
        firstlist.Add(2); 
        firstlist.Add(3); 
        firstlist.Add(4); 
        firstlist.Add(5); 
        firstlist.Add(6); 
        firstlist.Add(7); 
  
        // Checking whether 4 is present 
        // in List or not 
        Console.Write(firstlist.Contains(4)); 
    } 
} 

輸出:

True

示例 2:


// C# Program to remove the element at 
// the specified index of the List<T> 
using System; 
using System.Collections.Generic; 
  
class Geeks { 
  
    // Main Method 
    public static void Main(String[] args) 
    { 
  
        // Creating an List<T> of Integers 
        List<int> firstlist = new List<int>(); 
  
        // Adding elements to List 
        firstlist.Add(17); 
        firstlist.Add(19); 
        firstlist.Add(21); 
        firstlist.Add(9); 
        firstlist.Add(75); 
        firstlist.Add(19); 
        firstlist.Add(73); 
  
        Console.WriteLine("Elements Present in List:\n"); 
  
        int p = 0; 
  
        // Displaying the elements of List 
        foreach(int k in firstlist) 
        { 
            Console.Write("At Position {0}: ", p); 
            Console.WriteLine(k); 
            p++; 
        } 
  
        Console.WriteLine(" "); 
  
        // removing the element at index 3 
        Console.WriteLine("Removing the element at index 3\n"); 
  
        // 9 will remove from the List 
        // and 75 will come at index 3 
        firstlist.RemoveAt(3); 
  
        int p1 = 0; 
  
        // Displaying the elements of List 
        foreach(int n in firstlist) 
        { 
            Console.Write("At Position {0}: ", p1); 
            Console.WriteLine(n); 
            p1++; 
        } 
    } 
} 

輸出:

Elements Present in List:

At Position 0: 17
At Position 1: 19
At Position 2: 21
At Position 3: 9
At Position 4: 75
At Position 5: 19
At Position 6: 73
 
Removing the element at index 3

At Position 0: 17
At Position 1: 19
At Position 2: 21
At Position 3: 75
At Position 4: 19
At Position 5: 73

參考:



相關用法


注:本文由純淨天空篩選整理自Kirti_Mangal大神的英文原創作品 C# | List Class。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。