您的位置:首页>频道 > 关注 >

c列表

2023-03-07 07:03:06    来源:关注网

1、List<>是泛型,尖括号里可以放任何类,初始化的实例可以添加尖括号里类的实例,用法类似数组。


(资料图)

2、using System;using System.Collections.Generic;public class A{public static void Main(){//创建一个list对象CatsListCats= new List();//为Cats添加项Cats.Add("Cat1");Cats.Add("Cat2");Cats.Add("Cat3");//遍历Cats列表并输出foreach(string cat in Cats){Console.WriteLine(cat);}}扩展资料:泛型的好处避免了强制类型转换而造成代码可读性差。

3、2、既然有了类型强制转换,问题来了:类型强制转换可能会用到装箱和拆箱过程,耗时。

4、3、再由于有强制类型转换,在编译的时候可能不会包错,但是运行代码的时候有可能会因为转换失败而出现错误。

5、这就是我们说的非安全代码。

6、}}class Cls{ }简单来说,泛型就是限制了操作类型,添加到 ArrayList 中的任何引用或值类型都将隐式地向上强制转换为 Object。

7、如果项是值类型,则必须在将其添加到列表中时进行装箱操作,在检索时进行取消装箱操作。

8、强制转换以及装箱和取消装箱操作都会降低性能;在必须对大型集合进行循环访问的情况下,装箱和取消装箱的影响非常明显。

9、参考资料来源:百度百科-泛型命名空间:using System.Collections;class Program {//做个比较 static void Main(string[] args) { //new对象 Cls a1 = new Cls(); Cls a2 = new Cls(); //存放对象 Listtestfanxing = new List(); testfanxing.Add(a1); ArrayList testarray = new ArrayList(); testarray.Add(a2); //取对象 Cls b1 = testfanxing[0]; Cls b2 = testarray[0];//这句报错! 改为:Cls b2 = (Cls)testarray[0];就可正常通过,但是用了类型强制转换 //泛型啥好处? //1。

10、避免了强制类型转换而造成代码可读性差。

11、 //2。

12、既然有了类型强制转换,问题来了:类型强制转换可能会用到装箱和拆箱过程,耗时。

13、 //3。

14、再由于有强制类型转换,在编译的时候可能不会包错,但是运行代码的时候有可能会因为转换失败而出现错误。

15、这就是我们说的非安全代码。

16、 } } class Cls { }简单来说,泛型就是限制了操作类型。

17、用微软的话讲:“添加到 ArrayList 中的任何引用或值类型都将隐式地向上强制转换为 Object。

18、如果项是值类型,则必须在将其添加到列表中时进行装箱操作,在检索时进行取消装箱操作。

19、强制转换以及装箱和取消装箱操作都会降低性能;在必须对大型集合进行循环访问的情况下,装箱和取消装箱的影响非常明显。

20、”List是泛型集合这种集合规定了集合内的数据类型,只能存放的T类型数据; 而ArrayList不是泛型,这种集合中可以存放任意类型数据; 举个简单例子: Liststudents=new List(); 那么读取数据时就不用类型转化了,即: Student stu=students[0]; 增、删、改、查的方法: students.Add(T t);//增 students.Remove(int index);//删 stucents.Remove(T t);//删 students[]=//修改的数据 //查或者改 遍历集合类似于遍历数组 ArrayList students=new ArrayList(); Student stu=students[0] as Student;我很喜欢这List<>。

21、2003里面的查询数据表User 返回所有 id的name的时候,非得写2个方法,1个返回储存User的id的数组,1个返回储存User的name的数组。

22、其实方法完全一样,就是查询的一个是id,一个是name而已。

23、2005用List<>就可以直接返回List就可以了。

24、(user是类,id和name是他的属性。

25、)以前的数组元素只能是int,string.List<>里面可以是类。

26、这个是2.0的新特征泛型,用泛型可以解决装箱拆箱问题,Listtest =new List()这样定义,test这个集合就只能放进了int数据,因此取出的时候不用(int)test[i]显式转换了。

本文到此分享完毕,希望对大家有所帮助。

关键词: 强制转换 取消装箱 强制类型转换

相关阅读