using System;
using System.Collections.Generic;
namespace Lesson7_List
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("List");
#region 知识点一 List的本质
//List是一个c#为我们封装好的类,
//它的本质是一个可变类型的泛型数组,
//List类帮助我们实现了很多方法,
//比如泛型数组的增删查改
#endregion
#region 知识点二 声明
//需要引用命名空间
//using System.Collections.Generic;
List<int> listInt = new List<int>();
List<string> listString = new List<string>();
List<bool> listBool = new List<bool>();
#endregion
#region 知识点三 增删查改
#region 增
//将对象添加到 List<T> 的结尾处。
//public void Add (T item);
listInt.Add(1);
listInt.Add(2);
listInt.Add(3);
listInt.Add(4);
listString.Add("123");
//将指定集合的元素添加到 List<T> 的末尾。
//public void AddRange(System.Collections.Generic.IEnumerable<T> collection);
List<string> listStr = new List<string>();
listStr.Add("999");
listString.AddRange(listStr);
//将元素插入 List<T> 的指定索引处。
//public void Insert(int index, T item);
listInt.Insert(0, 100);
Console.WriteLine(listInt[0]);
#endregion
#region 删
//1.从 List<T> 中移除特定对象的第一个匹配项。
//public bool Remove(T item);
listInt.Remove(1);
//2.移除 List<T> 的指定索引处的元素。
//public void RemoveAt (int index);
listInt.RemoveAt(0);
//3.从 List<T> 中移除所有元素。
//public void Clear ();
listInt.Clear();
listInt.Add(1);
listInt.Add(2);
listInt.Add(3);
listInt.Add(4);
#endregion
#region 查
//1.通过索引器查
Console.WriteLine(listInt[0]);
//2.确定某元素是否在 List<T> 中。
//public bool Contains (T item);
if (listInt.Contains(0))
{
Console.WriteLine("0 is exist");
}
else
{
Console.WriteLine("0 is no exist");
}
//3.正向查找
//搜索指定的对象,并返回整个 List<T> 中第一个匹配项的从零开始的索引
//public int IndexOf(T item);
Console.WriteLine(listInt.IndexOf(10));
//4.反向查找k
//搜索指定对象并返回整个 List<T> 中最后一个匹配项的从零开始索引。
//public int LastIndexOf(T item);
Console.WriteLine(listInt.LastIndexOf(4));
#endregion
#region 改
//通过索引器改
listInt[0] = 100;
Console.WriteLine(listInt[0]);
#endregion
#endregion
#region 知识点四 遍历
//长度
Console.WriteLine(listInt.Count);
//容量
Console.WriteLine(listInt.Capacity);
//通过长度遍历
for (int i = 0; i < listInt.Count; ++i)
{
Console.WriteLine(listInt[i]);
}
//通过foreach遍历
foreach(int item in listInt)
{
Console.WriteLine(item);
}
#endregion
}
}
}