所有操作基于以下类
class Employees { public int Id { get; set; } public string Name { get; set; } public string City { get; set; } public DateTime BirthDate { get; set; } }
List<T>()初始化 List<T> 类的新实例,该实例为空并且具有默认初始容量。
List<Employees> employees = new List<Employees>(); employees.Add(new Employees { Id = 1, Name = "Nancy.Davolio", City = "Seattle", BirthDate = Convert.ToDateTime("1948-12-08") }); employees.Add(new Employees { Id = 2, Name = "Andrew.Fuller", City = "Tacoma", BirthDate = Convert.ToDateTime("1952-02-19") }); employees.Add(new Employees { Id = 3, Name = "Janet.Leverling", City = "Kirkland", BirthDate = Convert.ToDateTime("1963-08-30") }); employees.Add(new Employees { Id = 4, Name = "Margaret.Peacock", City = "Redmond", BirthDate = Convert.ToDateTime("1937-09-19") }); employees.Add(new Employees { Id = 5, Name = "Steven.Buchanan", City = "London", BirthDate = Convert.ToDateTime("1955-03-04") });
List<T>(IEnumerable<T>) 初始化 List<T> 类的新实例,该实例包含从指定集合复制的元素并且具有足够的容量来容纳所复制的元素。
List<Employees> employees = new List<Employees>() { new Employees { Id = 1, Name = "Nancy.Davolio", City = "Seattle", BirthDate = Convert.ToDateTime("1948-12-08") }, new Employees { Id = 2, Name = "Andrew.Fuller", City = "Tacoma", BirthDate = Convert.ToDateTime("1952-02-19") }, new Employees { Id = 3, Name = "Janet.Leverling", City = "Kirkland", BirthDate = Convert.ToDateTime("1963-08-30") }, new Employees { Id = 4, Name = "Margaret.Peacock", City = "Redmond", BirthDate = Convert.ToDateTime("1937-09-19") }, new Employees { Id = 5, Name = "Steven.Buchanan", City = "London", BirthDate = Convert.ToDateTime("1955-03-04") } };
//显示 Console.WriteLine("Employees Report"); Console.WriteLine("Id Name City BirthDate"); Console.WriteLine("-----------------------------------------"); foreach (var item in employees) { Console.WriteLine("{0} {1} {2} {3}", item.Id, item.Name, item.City, item.BirthDate); }
List<T>(Int32) 初始化 List<T> 类的新实例,该实例为空并且具有指定的初始容量
List<Employees> employees = new List<Employees>(2); employees.Add(new Employees { Id = 0, Name = "Nancy.Davolio", City = "Seattle", BirthDate = Convert.ToDateTime("1948-12-08") }); employees.Add(new Employees { Id = 1, Name = "Andrew.Fuller", City = "Tacoma", BirthDate = Convert.ToDateTime("1952-02-19") }); employees.Add(new Employees { Id = 2, Name = "Janet.Leverling", City = "Kirkland", BirthDate = Convert.ToDateTime("1963-08-30") }); employees.Add(new Employees { Id = 3, Name = "Margaret.Peacock", City = "Redmond", BirthDate = Convert.ToDateTime("1937-09-19") }); employees.Add(new Employees { Id = 4, Name = "Steven.Buchanan", City = "London", BirthDate = Convert.ToDateTime("1955-03-04") }); Console.WriteLine("Capacity:" + employees.Capacity); //Capacity:8 Console.WriteLine("Count:" + employees.Count); //Count:5
//Capacity 列表之前设定的容量值,每超过容量值在此前基础上*2,故0-1=2,2-3=4,4=8,可以通过调用TrimExcess方法或通过显式设置Capacity属性来减少多余容量
//Count 实际的元素个数
元素操作
List<Employees> employees = new List<Employees>(5); employees.Add(new Employees { Id = 0, Name = "Nancy.Davolio", City = "Seattle", BirthDate = Convert.ToDateTime("1948-12-08") }); employees.Add(new Employees { Id = 1, Name = "Andrew.Fuller", City = "Tacoma", BirthDate = Convert.ToDateTime("1952-02-19") }); employees.Add(new Employees { Id = 2, Name = "Janet.Leverling", City = "Kirkland", BirthDate = Convert.ToDateTime("1963-08-30") }); employees.Add(new Employees { Id = 3, Name = "Margaret.Peacock", City = "Redmond", BirthDate = Convert.ToDateTime("1937-09-19") }); employees.Add(new Employees { Id = 4, Name = "Steven.Buchanan", City = "London", BirthDate = Convert.ToDateTime("1955-03-04") }); Console.WriteLine("初始属性"); Console.WriteLine("Capacity:" + employees.Capacity); Console.WriteLine("Count:" + employees.Count); Console.WriteLine(); Console.WriteLine("添加一条数据"); employees.Add(new Employees { Id = 5, Name = "Michael.Suyama", City = "London", BirthDate = Convert.ToDateTime("1963-07-02") }); Console.WriteLine("Capacity:" + employees.Capacity); Console.WriteLine("Count:" + employees.Count); Console.WriteLine(); Console.WriteLine("清除多占用元素总数"); employees.TrimExcess(); Console.WriteLine("Capacity:" + employees.Capacity); Console.WriteLine("Count:" + employees.Count);