本文主要是介绍C# List (下面的练习很关键),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
List的本质
List是一个C#为我们封装好的类,它的本质是一个可变类型的泛型数组,
List类帮助我们实现了很多方法,比如泛型数组的增删查改
申明
需要引用命名空间 using System.Collections.Generic
List<int> list = new List<int>();
List<string> list2 = new List<string>();
List<bool> list3 = new List<bool>();
增删查改
List<string> list2 = new List<string>();
List<string> listStr = new List<string>();
listStr.Add("123");
list2.AddRange(listStr);
list.Insert(0, 999);
Console.WriteLine(list[0]);
1.移除指定元素
list.Remove(1);
2.移除指定位置的元素
list.RemoveAt(0);
3.清空
list.Clear();
1.得到指定位置的元素
Console.WriteLine(list[0]);
2.查看元素是否存在
if( list.Contains(1) )
{
Console.WriteLine("存在元素 1");
}
3.正向查找元素位置 找到返回位置 找不到 返回-1
int index = list.IndexOf(5);
Console.WriteLine(index);
4.反向查找元素位置 找到返回位置 找不到 返回-1
index = list.LastIndexOf(2);
Console.WriteLine(index);
Console.WriteLine(list[0]);
list[0] = 99;
Console.WriteLine(list[0]);
遍历
长度
Console.WriteLine(list.Count);
容量 避免产生垃圾
Console.WriteLine(list.Capacity);
for (int i = 0; i < list.Count; i++)
{
Console.WriteLine(list[i]);
}
foreach (int item in list)
{
Console.WriteLine(item);
}
类在加载的时候 一个成员变量被声明了 没有new 那么如果在构造函数里,用这个成员里面的方法,会对着他在内存中存的默认值调用方法 如果是引用类型,那么对 null 调用方法会导致 NullReferenceException
abstract class Monster
{public static List<Monster> monsterList { get; set; } = new List<Monster>();public Monster(){monsterList.Add(this);}public abstract void Action();
}
class Boss :Monster
{public override void Action(){Console.WriteLine("Boss攻击");}
}
class Gablin :Monster
{public override void Action(){Console.WriteLine("哥布林攻击");}
}class Program
{public static void Main(){Gablin gablin = new Gablin();Gablin gablin1 = new Gablin();Boss boss = new Boss();Gablin gablin2 = new Gablin();for (int i = 0; i < Monster .monsterList.Count ; i++){Monster.monsterList[i].Action();}}}
这篇关于C# List (下面的练习很关键)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!