目录
List Constructors
使用 List() 默认构造函数:
List(Int32)
List(IEnumerable)
Propertys
List.Capacity
List.Count
Methods
List.Add
List.AddRange(IEnumerable)
List.BinarySearch
List.Clear
List.Contains(T)
List.CopyTo
List.IndexOf
List.Insert
List.InsertRange
List.LastIndexOf
List.Remove(T)
List.RemoveAt(Int32)
List.RemoveRange
List.Reverse
List.Sort
List.ToArray
List.TrimExcess
点击这里进入官网了解更多信息
该类在 System.Collections.Generic 命名空间。
List
- 是一个强类型的集合, 类型参数 T 指定列表中元素所允许的类型。
- 可以动态添加和删除元素,也可以在某个位置插入新元素。
- 支持通过索引访问元素,也支持对元素的查找操作。
public List ();
static void Main(string[] args) { List
dinosaurs = new List (); // 使用默认构造函数初始化,该实例为空并且具有默认初始容量。 Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Deinonychus"); dinosaurs.Add("Compsognathus"); Console.WriteLine("输出dinosaurs 中所有的元素:"); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity); Console.WriteLine("Count: {0}", dinosaurs.Count); } Output: Capacity: 0 输出dinosaurs 中所有的元素: Tyrannosaurus Amargasaurus Mamenchisaurus Deinonychus Compsognathus Capacity: 8 Count: 5
- 使用默认的构造函数创建一个空列表。元素添加到列表中后, 列表的容量就会初始化扩大为可容纳4 ,个元素。
- 如果添加了第5个元素, 列表的大小就重新设置为包含8个元素。
- 如果8个元素还不够, 列表的大小就重新设置为包含16个元素。
- 每次都会将列表的容量重新设置为原来的2倍。
- 当列表的中的容量重新分配的时候,它会创建一个新的数组,使用Array.Copy()方法将旧数组中的元素复制到新数组中。
如果事先知道要存储的数据的个数,就可以利用列表的构造函数指定列表初始的容量大小
public List (int capacity);
- capacity 是 该对象最初可以存储的元素数。
如果 capacity
小于 0。 抛出 ArgumentOutOfRangeExceptionstatic void Main(string[] args) { List
dinosaurs = new List (5); Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Deinonychus"); dinosaurs.Add("Deinonychus"); dinosaurs.Add("Deinonychus"); Console.WriteLine(); foreach (string s in dinosaurs) { Console.WriteLine(s); } Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);
public List (System.Collections.Generic.IEnumerable
collection);
- collection : 表示一个集合,其元素被复制到List
对象中。 如果 collection
为null
。抛出 ArgumentNullExceptionstatic void Main(string[] args) { List
dinosaurs1 = new List (5) { "adas","huang", "cheng","tao"}; List dinosaurs = new List (5) { 5, 6, 7, 8, 9, 112 }; Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity); Console.WriteLine(); foreach (var s in dinosaurs) { Console.WriteLine(s); } Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity); } 输出: Capacity: 10 5 6 7 8 9 112 Capacity: 10 static void Main(string[] args) { string[] input = { "Brachiosaurus", "Amargasaurus","Mamenchisaurus" }; List
dinosaurs = new List (input) { "huang","cheng","tao"}; // 注意这里初始化方法 Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Deinonychus"); dinosaurs.Add("Compsognathus"); dinosaurs.Add("Compsognathus"); dinosaurs.Add("Compsognathus"); Console.WriteLine(); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity); } 输出: Capacity: 6 Brachiosaurus Amargasaurus Mamenchisaurus huang cheng tao Tyrannosaurus Amargasaurus Mamenchisaurus Deinonychus Compsognathus Compsognathus Compsognathus Capacity: 24
public int Capacity { get; set; }
- 获取或设置内部数据结构在不重新分配内存的情况下可以容纳的元素总数。
- 如果 Capacity 已设置为一个小于 Count 的值。抛出 ArgumentOutOfRangeException
- 当系统上没有足够的可用内存。抛出 OutOfMemoryException
static void Main(string[] args) { List
dinosaurs = new List (); Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Deinonychus"); dinosaurs.Add("Compsognathus"); Console.WriteLine(); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity); Console.WriteLine("Count: {0}", dinosaurs.Count); }
- Capacity 是的元素数的 List
在需要调整大小之前可以存储的最大元素数,而Count是当前 List 中实际存储的元素个数。 - Capacity 始终大于或等于Count。 如果 Count 在添加元素时超出 Capacity,则在复制旧元素和添加新元素之前,通过自动重新分配内部数组来增加容量。
- 如果Capacity 明显大于Count 并且希望减少 List 使用的内存,则可以通过调用 TrimExcess 方法或通过将 Capacity 属性显式设置为较低的值来减少容量。 当显式设置 Capacity 的值时,还会重新分配内部数组以容纳指定的容量,并复制所有元素。
获取 List
中包含的元素数。 public int Count { get; }
检索此属性的值的运算复杂度为 O(1)。
public void Add (T item);
- 将对象添加到 List
的结尾处。 对于引用类型,该值可以为 null
。- 如果 Count 已经等于Capacity,则通过自动重新分配内部数组来增加List的容量,并在添加新元素之前将现有元素复制到新数组。
- 如果Count小于Capacity,则此方法为O(1)操作。 如果需要增加容量以容纳新元素,则此方法变为O(n)操作,其中n为Count。
public void AddRange (System.Collections.Generic.IEnumerable
collection);
- 将指定集合的元素添加到 List
的末尾。 集合本身不能为null,但如果类型 T 是引用类型,则它可以包含 null 的元素。 如果 collection
为null
。抛出 ArgumentNullExceptionstatic void Main(string[] args) { string[] input = { "Brachiosaurus", "Amargasaurus","Mamenchisaurus" }; List
dinosaurs = new List () {"huang","cheng","tao"}; Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity); dinosaurs.AddRange(input); // 这里用一个集合为 dinosaurs 对象添加元素 Console.WriteLine(); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } }
使用二分查找算法来查找在已排序的List
中的特定元素或其中的一部分。 BinarySearch(T)
public int BinarySearch (T item);
使用默认比较器在整个已排序的List
内查找元素,并返回该元素的从零开始的索引。否则为一个负数,该负数是大于 item
的下一个元素的索引的按位求补。如果没有更大的元素,则为 Count 的按位求补。static void Main(string[] args) { List
dinosaurs = new List (); dinosaurs.Add("Pachycephalosaurus"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Deinonychus"); Console.WriteLine(); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } Console.WriteLine("\nSort"); dinosaurs.Sort(); // dinosaurs 必须是已排序的,才能使用 BinarySearch Console.WriteLine(); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } int index = dinosaurs.BinarySearch("Deinonychus"); WriteLine(index); }
- 如果List
多个元素具有相同的值,该方法将 返回其中的任何一个匹配元素,不一定是第一个匹配元素。 - 此方法为 O (log n) 操作,其中n是范围中的元素数。
public void Clear ();
从 List
中移除所有元素。 此方法为 O (n) 操作,其中n是Count。
static void Main(string[] args) { List
dinosaurs = new List (); dinosaurs.Add("Deinonychus"); dinosaurs.Add("Pachycephalosaurus"); dinosaurs.Add("Deinonychus"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Deinonychus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Deinonychus"); Console.WriteLine(); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } dinosaurs.Clear(); WriteLine(dinosaurs.Count); WriteLine(dinosaurs.Capacity); }
public bool Contains (T item);
- 确定 item 元素 是否在 List
中。 对于引用类型,该值可以为 null
。如果在List中找到item,则返回true; 否则,false。 - 该方法执行线性搜索;因此,这个方法是一个O(n)操作,其中n是Count。
static void Main(string[] args) { List
dinosaurs = new List (); dinosaurs.Add("Deinonychus"); dinosaurs.Add("Pachycephalosaurus"); dinosaurs.Add("Deinonychus"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Deinonychus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Deinonychus"); Console.WriteLine(); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } dinosaurs.Sort(); if(dinosaurs.Contains("Deinonychus")) { WriteLine("dinosaurs 对象中包含此元素!"); WriteLine($"查看此元素在 dinosaurs 中的下标位置:{dinosaurs.BinarySearch("Deinonychus")}"); }
该操作有重载形式
public void CopyTo (T[] array);
- 把List
对象中的元素复制到 目标数组 array 中。 记住 List 的元素类型 要和 目标数组中的 元素类型要一致。 如果 参数 array
为null
。抛出 ArgumentNullException- 如果 源 List
中的元素个数大于目标 array
可以包含的元素个数。抛出 ArgumentException- 此方法使用 Array.Copy 把 List
中的元素 拷贝到 目标数组中。 - 此方法为 O (n) 操作,其中n是Count。
static void Main(string[] args) { List
dinosaurs = new List (); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Brachiosaurus"); dinosaurs.Add("Compsognathus"); Console.WriteLine(); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } string[] array = new string[5]; dinosaurs.CopyTo(array); Console.WriteLine("\nContents of the array:"); foreach (string dinosaur in array) { Console.WriteLine(dinosaur); } }
public int IndexOf (T item);
- 看 item( 对于引用类型,该值可以为
null
)是否在 List对象中,如果存在, 返回 item 在 List 对象中第一个字符的索引。若没找到,返回 -1. - List
的搜索是从第一个元素开始,搜索到最后一个元素结束。 - 此方法执行线性搜索;因此,此方法为 O (n) 操作,其中n是Count。
static void Main(string[] args) { List
dinosaurs = new List (); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Brachiosaurus"); dinosaurs.Add("Deinonychus"); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Compsognathus"); Console.WriteLine(); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } Console.WriteLine(dinosaurs.IndexOf("Compsognathus")); // 输出 索引6 }
public int IndexOf (T item, int index);
- 返回 List
中 从 index 索引开始直到 List 的末尾, 看是否 有跟 item ( 对于引用类型,该值可以为 null
)匹配的元素。 若有,返回 item 在 List中的索引; 否则, 返回 -1。 如果 参数 index
超出了 List的有效索引范围。抛出 ArgumentOutOfRangeException static void Main(string[] args) { List
dinosaurs = new List (); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Brachiosaurus"); dinosaurs.Add("Deinonychus"); dinosaurs.Add("Compsognathus"); Console.WriteLine(); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } // 返回索引3 Console.WriteLine("\nIndexOf(\"Tyrannosaurus\", 3): {0}",dinosaurs.IndexOf("Tyrannosaurus", 3)); }
public int IndexOf (T item, int index, int count);
- 返回从 index 下标开始 到 item + count -1 这个下标范围内查找是否在 List
中 有跟 item 匹配的元素, 若有, 返回 item 在 List 中的下标位置。 否则, 返回 -1。 - item的 值如果是引用类型,该值可以为
null
。
如果参数 index
超出了 List的有效索引范围。或 - count
小于 0。或 -index
和count
未在 List中指定有效部分。都会抛出 ArgumentOutOfRangeException static void Main(string[] args) { List
dinosaurs = new List (); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Brachiosaurus"); dinosaurs.Add("Deinonychus"); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Compsognathus"); Console.WriteLine(); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } // 返回 -1 Console.WriteLine("\nIndexOf(\"Tyrannosaurus\", 2, 2): {0}", dinosaurs.IndexOf("Tyrannosaurus", 2, 3)); }
- 如果 参数 count 大于0,则从下标 index 开始向前搜索List
,并在 index + count - 1 的范围 结束。 - 此方法执行线性搜索;因此,此方法为 O (n) 操作,其中n是
count
。
public void Insert (int index, T item);
- 将元素 item ( 对于引用类型,该值可以为
null
) 插入 List的 index 下标位置。 如果参数 index
小于 0。 或index
大于 Count。都将 抛出 ArgumentOutOfRangeException- 如果 Count 已等于Capacity,则通过自动重新分配内部数组来增加List
的容量,并在添加新元素之前将现有元素复制到新数组。 - 如果 index 等于 Count ,则将 item 添加到List
的末尾。 - 此方法为 O (n) 操作,其中n是Count。
static void Main(string[] args) { List
dinosaurs = new List (); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Deinonychus"); dinosaurs.Add("Compsognathus"); dinosaurs.Insert(2, "huangchengtao"); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } }
public void InsertRange (int index, System.Collections.Generic.IEnumerable
collection);
- 在 List
的 index 索引位置 插入集合 collection 元素, - collection 本身不能为null,但如果类型 T 是引用类型,则它可以包含 null 的元素。
如果 参数 collection
为null
。抛出 ArgumentNullException如果 index
小于 0。或 -index
大于 Count。 抛出 ArgumentOutOfRangeException- 记住: collection 中的元素类型要和 List
中的元素类型一致。 - 如果index等于 Count ,则元素将添加到List
的末尾。 - 该方法是O(n * m)运算,其中n是要添加的元素数,m 是 Count
static void Main(string[] args) { string[] input = { "Brachiosaurus","Amargasaurus","Mamenchisaurus" }; List
dinosaurs = new List () { "huang" ,"cheng","tao"}; dinosaurs.InsertRange(0, input); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } }
public int LastIndexOf (T item);
返回 从 List
的尾部向前搜索第一个 与 item( 对于引用类型,该值可以为 null
) 匹配的元素索引,如没找到,返回 -1.此方法执行线性搜索;因此,此方法为 O (n) 操作,其中n是Count。
static void Main(string[] args) { List
dinosaurs = new List (); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Brachiosaurus"); dinosaurs.Add("Deinonychus"); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Compsognathus"); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } Console.WriteLine(dinosaurs.LastIndexOf("Tyrannosaurus")); // 输出下标 6 }
public int LastIndexOf (T item, int index);
- 从 List
索引 0 开始 到 index 结束范围内,从后往前搜索 是否有跟 item ( 对于引用类型,该值可以为 null )
匹配的元素。 若有,返回 item 在 List中下标位置, 否则 返回 -1. 如果 参数 index
超出了 List的有效索引范围。 抛出 ArgumentOutOfRangeException - 该方法执行线性搜索; 因此,此方法是O(n)操作,其中 n 是从List
开始到索引的元素数量。 static void Main(string[] args) { List
dinosaurs = new List (); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("huangchengtao"); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Brachiosaurus"); dinosaurs.Add("Deinonychus"); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Compsognathus"); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } // 返回 3 Console.WriteLine(dinosaurs.LastIndexOf("Tyrannosaurus", 3)); }
public bool Remove (T item);
- 在 List
删除 第一个 与 item (对于引用类型,该值可以为 null
)匹配的元素。- 如果成功移除
item
,则为true
;否则为false
。 如果在 List中没有找到 item
,该方法也会返回false
。- 此方法执行线性搜索;因此,此方法为 O (n) 操作,其中 n 是Count。
static void Main(string[] args) { List
dinosaurs = new List (); dinosaurs.Add("huang"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Brachiosaurus"); dinosaurs.Add("Deinonychus"); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Compsognathus"); Console.WriteLine(dinosaurs.Remove("huang")); // 返回true foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } }
public void RemoveAt (int index);
- 从 List
中 删除 index 索引处的元素。 如果参数 index
小于 0。或 -index
等于或大于 Count。 都会 抛出 ArgumentOutOfRangeException- 当使用 RemoveAt 删除一个元素的时候, 该元素之后的元素会移到被删除元素的位置,然后元素个数减一
- 此方法为 O (n) 操作,其中n是 (Count -
index
)。static void Main(string[] args) { List
dinosaurs = new List (); dinosaurs.Add("huang"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Brachiosaurus"); dinosaurs.Add("Deinonychus"); dinosaurs.RemoveAt(4); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } }
public void RemoveRange (int index, int count);
- 删除从 List
索引 index开始 到 index+ count -1 范围内结束的元素。 如果参数 index
小于 0。或 -count
小于 0。抛出 ArgumentOutOfRangeException如果参数 index
和count
不表示 List中元素的有效范围。 抛出 ArgumentException - 此方法为 O (n) 操作,其中n是Count。
static void Main(string[] args) { List
dinosaurs = new List (); dinosaurs.Add("huang"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Brachiosaurus"); dinosaurs.Add("Deinonychus"); dinosaurs.RemoveRange(2, 2); // 下标2 和 下标3的元素被删除 foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } }
public void Reverse ();
- 逆转整 个List
中元素的顺序。 - 此方法使用 Array.Reverse 来反转元素的顺序。
- 此方法为 O (n) 操作,其中n是Count。
static void Main(string[] args) { List
dinosaurs = new List (); dinosaurs.Add("huang"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Brachiosaurus"); dinosaurs.Add("Deinonychus"); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } dinosaurs.Reverse(); WriteLine(); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } }
public void Reverse (int index, int count);
- 把 List
下标 index 的位置 到 index + count -1 下标位置的结束范围内的元素逆转。 如果 参数 index
小于 0。 或 -count
小于 0。抛出 ArgumentOutOfRangeException如果参数 index
和count
不表示 List中元素的有效范围。抛出 ArgumentException - 此方法使用 Array.Reverse 来反转元素的顺序。
- 此方法为 O (n) 操作,其中n是Count。
static void Main(string[] args) { List
dinosaurs = new List (); dinosaurs.Add("huang"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Brachiosaurus"); dinosaurs.Add("Deinonychus"); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } dinosaurs.Reverse(1, 4); // 把下标1开始到下标4 的元素逆转了 WriteLine(); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } }
该操作有很多重载形式
public void Sort ();
使用默认比较器对整个List
中的元素进行排序。 static void Main(string[] args) { List
dinosaurs = new List (); dinosaurs.Add("euang"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Brachiosaurus"); dinosaurs.Add("Deinonychus"); dinosaurs.Sort(); WriteLine(); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } }
public T[] ToArray ();
- 将 List
中的元素 拷贝到 一个 T 类型的数组中去。 - 该操作是使用 Array.Copy 复制元素,这是一个O(n)操作,其中 n 是 Count
- 此方法为 O (n) 操作,其中n是Count。
static void Main(string[] args) { string[] input = { "Brachiosaurus","Amargasaurus", "Mamenchisaurus" }; List
dinosaurs = new List (input); string[] temp = dinosaurs.ToArray(); foreach(var tt in temp) { WriteLine(tt); } }
public void TrimExcess ();
- 如果不准备向 List
中添加元素,那么可以使用TrimExcess() 退回 List 中不需要的容量。这样可以表示退回给系统不需要的容量。 但是, 因为重新定位需要时间,所以如果元素个数超过了容量的90%, TrimExcesso() 方法就什么也不做。 - 该方法的功能是 将容量设置为 List
中的实际元素数目 - 此方法为 O (n) 操作,其中n是Count。
- 如果要将List
重置为其初始状态,请在调用 TrimExcess 方法之前调用 Clear 方法。 static void Main(string[] args) { List
dinosaurs = new List (20) { "huang","cheng","tao"}; WriteLine(dinosaurs.Capacity); //输出 20 dinosaurs.TrimExcess(); WriteLine(dinosaurs.Capacity); // 输出 3 }
End....