当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。