List<string> list = new List<string>() { "hellow", "word" };
List<int> list2 = new List<int>() { 1, 2, 3 };
List<object> list1 = new List<object>() { 1, "hellow", false };
list.Add("mm");
//添加字符串数组
list.AddRange(new string[] { "xiin", "erxiang" });
//修改
list[3] = "XIIN";
//删除
// list.Remove(list[3]); //根据值来删除
//list.RemoveAt(3); //根据索引来删除
//list.RemoveAll((s) => { return !string.IsNullOrEmpty(s); }); //根据满足的条件来删除
//list.RemoveRange(1,3);//从指定索引位置开始删除几项
//插入
// list.Insert(2, "jj"); //在该索引前插入
//list.InsertRange(1, new string[] { "a1","a2"});
Console.WriteLine("容量" + list.Capacity); //容量成倍增加红黑树
Console.WriteLine("项数" + list.Count);
// list.ForEach((item)=> Console.WriteLine(item)); //ForEach循环每一项
Console.WriteLine(list.Contains("mm")); //是否包含谋项
Console.WriteLine(list.Contains<string>("h"));
//自定义比较器
IEqualityComparer<string> MyComparer = new MyCompare();
Console.WriteLine(list.Contains<string>("h", MyComparer));//list中是否包含以h开头的项
List<string> lists1 = new List<string>() {"abc" };
List<string> lists2 = new List<string>() { "abc" };
Console.WriteLine(lists1.Equals(lists2)); //比较两个列表内存地址是否相等 F
Console.WriteLine(lists1 == lists2); //比较两个列表内存地址是否相等 F
//查找是否有以a开头的项
Console.WriteLine(lists1.Exists(s => s.StartsWith("a")));
Console.WriteLine(list.IndexOf("mm")); //查找某项在列表中第一次的索引 找不到返回-1
Console.WriteLine(list.LastIndexOf("mm"));//查找某项在列表中第一次的索引 找不到返回-1 倒着查
list.Reverse(); //将列表反转 影响原列表
list.Sort(); //排序 可以加自定义排序方法
Console.WriteLine(list.Find((s) => s == "hellow")); //返回满足lambda表达式逻辑中第一项匹配的结果,返回查询结果的项值没有则返回null
//返回满足lambda表达式逻辑中一部分项匹配的结果,返回结果是列表没有则返回0
List<string> result = list.FindAll((s) => s.StartsWith("h"));
int index1 = list.FindIndex(s=>s=="hellow");
Console.WriteLine(index1);
//查询满足表达式项的索引找不到返回-1 (倒着查)
int index2 = list.FindLastIndex(s => s == "hellow");
Console.WriteLine(index2);