C# |列表类

原文:https://www.geeksforgeeks.org/c-sharp-list-class/

列表< T >类代表可以通过索引访问的对象列表。它属于体系。集合.泛型命名空间。List 类可以用来创建不同类型的集合,如整数、字符串等。列表< T >类还提供了搜索、排序和操作列表的方法。

特征:

  • 它不同于数组。A 列表< T >可以动态调整大小但是数组不能。
  • List 类可以接受 null 作为引用类型的有效值,并且它还允许重复元素。
  • 如果计数等于容量,则列表的容量会通过重新分配内部阵列而自动增加。在添加新元素之前,现有元素将被复制到新数组中。
  • List 类通过实现 IList 泛型接口,是数组列表类的泛型等价类。
  • 这个类可以同时使用等式和排序比较器。
  • 列表类默认不排序,元素由从零开始的索引访问。
  • 对于非常大的列表对象,您可以通过在运行时环境中将配置元素的 enabled 属性设置为 true,将 64 位系统上的最大容量增加到 20 亿个元素

构造器

构造器 描述
列表< T > () 初始化列表类的新实例,该实例为空并具有默认的初始容量。
--- ---
列表< T >(无限量< T > ) 初始化 List 类的新实例,该实例包含从指定集合复制的元素,并且有足够的容量容纳复制的元素数量。
--- ---
列表< T > (Int32) 初始化列表类的新实例,该实例为空并具有指定的初始容量。
--- ---

示例:

// 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

性能

财产 描述
运力 获取或设置内部数据结构在不调整大小的情况下可以容纳的元素总数。
--- ---
计数 获取列表中包含的元素数量。
--- ---
项【国际 32】 获取或设置指定索引处的元素。
--- ---

示例:

// 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

方法

方法 描述
加(T) 将对象添加到列表的末尾。
--- ---
AddRange(无数<>) 将指定集合的元素添加到列表的末尾。
--- ---
【ASR only() 返回当前集合的只读 ReadOnlyCollection 包装。
--- ---
BinarySearch() 使用二分搜索法算法定位排序列表中的特定元素或其一部分。
--- ---
晴() 从列表中移除所有元素。
--- ---
包含(T) 确定一个元素是否在列表中。
--- ---
转换器(转换器) 将当前列表中的元素转换为另一种类型,并返回包含转换元素的列表。
--- ---
CopyTo() 将列表或其一部分复制到数组中。
--- ---
等于(对象) 确定指定的对象是否等于当前对象。
--- ---
存在(谓语)T3】 确定列表是否包含与指定谓词定义的条件相匹配的元素。
--- ---
Find(谓语)T3】 搜索与指定谓词定义的条件相匹配的元素,并返回整个列表中的第一个匹配项。
--- ---
FindAll(谓语)T3】 检索与指定谓词定义的条件匹配的所有元素。
--- ---
【查找指数() 搜索与指定谓词定义的条件相匹配的元素,并返回列表中第一个匹配项的从零开始的索引或其一部分。如果找不到符合条件的项目,这个方法会传回-1。
--- ---
FindLast(谓语)T3】 搜索与指定谓词定义的条件相匹配的元素,并返回整个列表中的最后一个匹配项。
--- ---
【find lastindex() 搜索与指定谓词定义的条件相匹配的元素,并返回列表中最后一次出现的从零开始的索引或其一部分。
--- ---
ForEach(动作)T3】 对列表中的每个元素执行指定的操作。
--- ---
【get 分子() 返回遍历列表的枚举数。
--- ---
GetHashCode() 用作默认哈希函数。
--- ---
抱怨(Int32,Int32) 在源列表中创建一系列元素的浅拷贝。
--- ---
GetType() 获取当前实例的类型。
--- ---
指数() 返回列表或其一部分中第一个值的从零开始的索引。
--- ---
插入(Int32,T) 在列表中指定的索引处插入一个元素。
--- ---
插入范围(Int32,无数<>) 将集合的元素插入列表中指定索引处的。
--- ---
最后索引() 返回列表中某个值最后一次出现的从零开始的索引或其一部分。
--- ---
MemberWiseCrone() 创建当前对象的浅拷贝。
--- ---
移除(T) 从列表中删除特定对象的第一次出现。
--- ---
移除所有(谓词)T3】 移除与指定谓词定义的条件匹配的所有元素。
--- ---
移除 At(Int32) 移除列表指定索引处的元素。
--- ---
移除范围(Int32,Int32) 从列表中删除一系列元素。
--- ---
【反转() 颠倒列表或其一部分中元素的顺序。
--- ---
【排序() 使用指定或默认的 IComparer 实现或提供的比较委托来比较列表元素,对列表中的元素或部分元素进行排序。
--- ---
toaarray() 将列表的元素复制到新数组中。
--- ---
ToString() 返回表示当前对象的字符串。
--- ---
【quarter xcess() 如果列表中元素的实际数量小于阈值,则将容量设置为该数量。
--- ---
TrueForAll(谓语)T3】 确定列表中的每个元素是否符合指定谓词定义的条件。
--- ---

例 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

参考: