目录
一、概述
二、构造函数
1.List()
2.List(IEnumerable)
3.List(Int32)
三、属性
1.Capacity
2.Count
3.Item[Int32]
四、方法
1.Add(T)
2.AddRange(IEnumerable)
3.AsReadOnly()
4.BinarySearch(T)
C# List 详解一
1.Add(T),2.AddRange(IEnumerable),3.AsReadOnly(),4.BinarySearch(T),
C# List 详解二
5.Clear(),6.Contains(T),7.ConvertAll(Converter),8.CopyTo(Int32, T[], Int32, Int32),9.CopyTo(T[]),10.CopyTo(T[], Int32)
C# List 详解三
11.Equals(Object),12.Exists(Predicate),13.Find(Predicate),14.FindAll(Predicate),15.FindIndex(Int32, Int32, Predicate),16.FindIndex(Int32, Predicate),17.FindIndex(Predicate)
C# List 详解四
18.FindLast(Predicate),19.FindLastIndex(Int32, Int32, Predicate),20.FindLastIndex(Int32, Predicate),21.FindLastIndex(Predicate),22.ForEach(Action),23.GetEnumerator(),24.GetHashCode(),25.GetRange(Int32, Int32)
C# List 详解五
26.GetType(),27.IndexOf(T),28.IndexOf(T, Int32),29.IndexOf(T, Int32, Int32),30.Insert(Int32, T),31.InsertRange(Int32, IEnumerable),32.LastIndexOf(T),33.LastIndexOf(T, Int32),34.LastIndexOf(T, Int32, Int32)
C# List 详解六
35.MemberwiseClone(),36.Remove(T),37.RemoveAll(Predicate),38.RemoveAt(Int32),39.RemoveRange(Int32, Int32),40.Reverse(),41.Reverse(Int32, Int32)
C# List 详解七
42.Sort(),43.ToArray(),44.ToString(),45.TrimExcess(),46.TrueForAll(Predicate)
C# List 详解二_熊思宇的博客-CSDN博客
C# List 详解三_熊思宇的博客-CSDN博客
C# List 详解四_熊思宇的博客-CSDN博客
C# List 详解五_熊思宇的博客-CSDN博客
C# List 详解六_熊思宇的博客-CSDN博客
C# List 详解七_熊思宇的博客-CSDN博客
表示可通过索引访问的对象的强类型列表。 提供用于对列表进行搜索、排序和操作的方法,List是一个动态数组,它可以存储任意类型的对象,并且可以根据需要自动调整大小。
在 C# 的数据结构中,如果说谁用的最频繁,那么 List 这个数据结构绝对排第一,虽然用的多,在平时的开发中,大部分人只是重复的用几个固定的方法,比如 Add,Remove,Count,Clear 等。在一些初学者的代码中,假设要在 List 找出一个元素的下标,很多人直接写了一个 for 循环去判断,虽然我之前也是这么写的,其实 List 封装了很多很好用的方法,比如 FindIndex 这个方法就可以直接获取到 List 中某个元素的下标,根本不用自己写了一大堆代码去判断,我觉得对 List 这个类深入的去了解还是有必要的。
初始化 List
public List ();
常用的实例化方法,list 中不会有任何默认值
案例:
List list = new List();
初始化 List
public List (System.Collections.Generic.IEnumerable collection);
参数
collection
IEnumerable
一个集合,其元素被复制到新列表中。
案例:
string[] input = { "a","b","c" };
List list = new List(input);
初始化 List
public List (int capacity);
参数
capacity
Int32
新列表最初可以存储的元素数。
案例:
List list = new List(2);
Console.WriteLine(list.Count);
这里并不会和数组一样,指定 length 的长度为2 会有两个空值
用 Count 获取这时候是0,但用 Capacity 属性来获取就有长度了,感觉这样做的意义感觉不大
List dinosaurs = new List(4);
Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
运行:
获取或设置该内部数据结构在不调整大小的情况下能够容纳的元素总数。
public int Capacity { get; set; }
属性值
Int32
在需要调整大小之前 List
案例:
List dinosaurs = new List(4);
Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
获取 List
public int Count { get; }
属性值
Int32
List
案例:
List list = new List(2);
list.Add(1);
Console.WriteLine(list.Count);
获取或设置指定索引处的元素。
public T this[int index] { get; set; }
参数
index
Int32
要获取或设置的元素的从零开始的索引。
属性值
T
指定索引处的元素。
案例:
List list = new List(2);
list.Add(1);
list.Add(2);
list.Add(3);
list.Add(4);
int num = list[1];
Console.WriteLine(num);
将对象添加到 List
public void Add (T item);
参数
item
T
要添加到 List
案例:
List list = new List(2);
list.Add(1);
将指定集合的元素添加到 List
public void AddRange (System.Collections.Generic.IEnumerable collection);
参数
collection
IEnumerable
应将其元素添加到 List
案例:
List list = new List(2);
int[] arr = { 13, 3, 5, 67, 34 };
list.AddRange(arr);
返回当前集合的只读 ReadOnlyCollection
public System.Collections.ObjectModel.ReadOnlyCollection AsReadOnly ();
返回
ReadOnlyCollection
一个对象,作为围绕当前 List
案例:
下面代码的 AsReadOnly 用于获取包装原始列表的只读 IList
namespace ListTest
{
internal class Program
{
static void Main(string[] args)
{
List dinosaurs = new List(4);
dinosaurs.Add("Tyrannosaurus");
dinosaurs.Add("Amargasaurus");
dinosaurs.Add("Mamenchisaurus");
dinosaurs.Add("Deinonychus");
IList roDinosaurs = dinosaurs.AsReadOnly();
Console.ReadKey();
}
}
}
使用默认的比较器在整个已排序的 List
public int BinarySearch (T item);
参数
item
T
要定位的对象。 对于引用类型,该值可以为 null。
返回
Int32
如果找到 item,则为已排序的 List
案例:
using System;
using System.Collections.Generic;
namespace ListTest
{
internal class Program
{
static void Main(string[] args)
{
List dinosaurs = new List();
dinosaurs.Add("Pachycephalosaurus");
dinosaurs.Add("Parasauralophus");
dinosaurs.Add("Amargasaurus");
dinosaurs.Add("Galimimus");
dinosaurs.Add("Mamenchisaurus");
dinosaurs.Add("Deinonychus");
dinosaurs.Add("Oviraptor");
dinosaurs.Add("Tyrannosaurus");
int index = dinosaurs.BinarySearch("Tyrannosaurus");
Console.WriteLine(index);
Console.ReadKey();
}
}
}
运行:
第 1 / 7 篇 End