List类是ArrayList类的泛型等效类,该类使用大小可按需动态增加的数组实现IList泛型接口。

  泛型的好处:它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,所以性能得到提高。

  性能注意事项:在决定使用IList还是使用ArrayList类(两者具有类似的功能)时,记住IList类在大多数情况下执行得更好并且是类型安全的。如果对IList类的类型T 使用引用类型,则两个类的行为是完全相同的。但是,如果对类型T 使用值类型,则需要考虑实现和装箱问题。

C# List的基础常用方法:

  一、声明:

  1、List mList = new List();

  T为列表中元素类型,现在以string类型作为例子:

  List mList = new List();

  2、List testList =new List (IEnumerable collection);

  以一个集合作为参数创建List:

  string[] temArr = { "Ha", "Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku", "Locu"};

  List testList = new List(temArr);

  二、添加元素:

  1、List. Add(T item)添加一个元素

  例:

  mList.Add("John");

  2、List. AddRange(IEnumerable collection)添加一组元素

  例:

  string[] temArr = {"Ha","Hunter","Tom","Lily","Jay","Jim","Kuku","Locu"};mList.AddRange(temArr);

  3、Insert(intindex, T item);在index位置添加一个元素

  例:

  mList.Insert(1,"Hei");

  三、遍历List中元素:

  foreach(TelementinmList)T的类型与mList声明时一样

  {

  Console.WriteLine(element);

  }

  例:

  foreach(stringsinmList)

  {

  Console.WriteLine(s);

  }

  四、删除元素:

  1、List. Remove(T item)删除一个值

  例:

  mList.Remove("Hunter");

  2、List. RemoveAt(intindex);删除下标为index的元素

  例:

  mList.RemoveAt(0);

  3、List. RemoveRange(intindex,intcount);

  从下标index开始,删除count个元素

  例:

  mList.RemoveRange(3, 2);

  五、判断某个元素是否在该List中:

  List. Contains(T item)返回true或false,很实用

  例:

  if(mList.Contains("Hunter"))

  {

  Console.WriteLine("There is Hunter in the list");

  }

  else

  {

  mList.Add("Hunter");

  Console.WriteLine("Add Hunter successfully.");

  }

  六、给List里面元素排序:

  List. Sort ()默认是元素第一个字母按升序

  例:

  mList.Sort();

  七、给List里面元素顺序反转:

  List. Reverse ()可以不List. Sort ()配合使用,达到想要的效果

  例:

  mList.Sort();

  八、List清空:

  List. Clear ()

  例:

  mList.Clear();

  九、获得List中元素数目:

  List. Count ()返回int值

  例:

  in tcount = mList.Count();

  Console.WriteLine("The num of elements in the list: "+count);

最新文章

  1. php的mysql\mysqli\PDO(三)PDO
  2. [django]从前端返回字符串,后端转换为字典,执行数据添加操作
  3. 搭建Git服务器
  4. pip install 报错原因
  5. JAVA作业)01
  6. jquery-lazyload延迟加载图片 及 加载顺序 bug 修复
  7. Spring与apache CXF结合实例
  8. Chrome的Postman的使用
  9. IOS Remote Notification
  10. memset的用法
  11. Scala隐式转换
  12. ****** 四十九 ******、软设笔记【UML分析和意义】-建模的意义,UML的特点、结构,用例图
  13. 一起学Hadoop——实现两张表之间的连接操作
  14. windows上,任务管理器中,进程命令行太长怎么办
  15. Linux re
  16. 页面点击,不是a标签也会刷新原因
  17. Ipad也怕冷?!
  18. 最新php环境搭建,2017年最新PHP环境搭建
  19. WebRTC中Android Demo中的摄像头从采集到预览流程
  20. Asynchronous calls and remote callbacks using Lingo Spring Remoting

热门文章

  1. #Week3 Linear Regression with Multiple Variables
  2. 图论--网络流--最大流 洛谷P4722(hlpp)
  3. [bzoj5329] P4606 [SDOI2018]战略游戏
  4. 获取Wi-Fi的SSID
  5. React Native超简单完整示例-tabs、页面导航、热更新、用户行为分析
  6. 操作系统实验——PV操作实现生产者消费者模型
  7. 一文教你快速学会在matlab的simulink中调用C语言进行仿真
  8. Python 简明教程 --- 0,前言
  9. 十分钟看懂AES加密
  10. ES6-10笔记(一)