ASP.NET的IList<T>和List<T>区别(转)


首先IList泛型接口,是 ICollection泛型接口的子代,并且是所有泛型列表的基接口。  它仅仅是所有泛型类型的接口,并没有太多方法可以方便实用,如果仅仅用作数据集合的承载体,IList <T>可以实现。
然而,经常我们需要对集合数据进行处理,如筛选或排序,这时就需要用List <T>。它们的主要区别在于:
1、当你只想使用接口的方法时,IList <>这种方式比较好。它不获取实现这个接口的类的其他方法和字段,可以节省空间。
2、IList <>是个接口,定义的方法都没有实现而List <>是泛型类,它已经实现了IList <>定义的方法。
List<Class1> L1 = new List<Class1>();
IList<Class1> L1 = new List<Class1>();
这两行代码,从操作上来看没什么区别,都是创建了一个List<Class1>对象的实例。只是用于保存该操作的返回值的变量的类型不一样而已。可以理解为这两行代码的目的不一样。前者创建了一个List<Class1>对象实例,需要使用到List<T>的功能,进行相关操作。而后者只是创建一个基于接口IList<Class1>的对象的实例,这个接口由List<T>来实现,该实例只用到了IList<T>接口规定的功能。

ASP.NET的IList<T>和List<T>区别(转)

时间: 2024-08-01 22:47:10

ASP.NET的IList<T>和List<T>区别(转)的相关文章

asp.net mvc4中model与Model的区别

@model模型定义 使用@model关键字可以定义一个Action里所对应的一个模型(经常可以叫他实体类), 其实是对动态变量进行实例化,这样就可以直接在cshtml文件中调用“Model”变量. 而这个模型的实例,需要通过Controller进行传输,如果没有则“Model”将为null. 模型可以是一个实体类,也可以是一个列表实例,字典对象都可以进行定义,但是和 Controller中的Action传回来的实例一定要一样,否则将会出现错误. Model 定义 MVC的第一个字母M是Mode

asp.net基础中Get和Post的区别。

1.可以设定form的Method属性制定表单提交方式,Get(默认值)是通过URL传递表单值,post传递的表单只是隐藏到http报文中,url中看不到. 2.Get和Post的区别:get是通过url传递表单值,post通过url看不到表单域的值:get传递的数据量有限,如果要传递大量数据不能用get,比如type="file"上传文章,type="password"传递密码或者<textarea>发表大段文章,post没有这个限制:post会有浏览

C# —— IList, ArrayList与List的区别详解

共同点: IList, List , ArrayList 通俗一点来讲就是广义的数组,C#里面称之为集合.不同于一般的狭义的数组,它们可以存放任意类型的东西,在申明或者赋值的时候指定. 比如你写了一个类 Cake,然后想有一个结构来存放很多Cake的实例,那就可以用他们. 区别: IList与List 通俗一点讲,只能存放同一类型的元素. 比如声明的时候 声明为List<Cake> cakes=new List<Cake>(); 那么就只能用放cake的实例. 在从cakes这个变

ASP.NET的GET和POST方式的区别归纳总结

表单提交中,ASP.NET的Get和Post方式的区别归纳如下 几点: 1. get是从服务器上获取数据,post是向服务器传送数据. 2.  get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过HTTP  post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址.用户看不到这个过程. 3.  对于get方式,服务器端用Request.QueryString获取变量

ASP.NET控件&lt;ASP:Button /&gt; html控件&lt;input type=&quot;button&quot;&gt;区别联系

ASP.NET控件<ASP:Button />-------html控件<input type="button">杨中科是这么说的:asp和input是一样的东西 服务器只认识input,我们可以直接写input 但是asp是要把自己自动翻译成input再交给服务器的.其实是一样的东西 写写我看到的区别:                asp控件,直接可以用c#编程                input加上 runat=“server” 也被c#编程了 说白

ASP.NET MVC中ViewBag和ViewData的区别

在MVC3.0以上我们会用到ViewBag或者ViewData进行页面传值,对比一下二者的差距: ViewData ViewBag 基于key/value的字典集合 dynamic类型对象 从ASP.NET1.0就有 从ASP.NET3.0才有 基于ASP.NET 3.5 framework 基于ASP.NET 4.0于.net framework ViewData比ViewBag快 ViewBag比ViewData慢 在页面展示数据时,需要转换成合适的实体类型 在页面展示数据时,不需要类型转换

Asp.net中WebForm 与 MVC的架构区别

ASP.NET Webform 后台代码(behind code) 这种behind code 模式有5个问题,我们用MVC的设计思想来分别解决这些问题 1.基于视图的方案来解决基于行为的需求 从上图可以看出,整个请求过程看上去很奇怪: 用户发起一个HTTP请求,比如HTTP POST / GET IIS服务器将请求映射到视图 视图调用页面的生命周期,通过事件驱动,调用合适的交互方法 最后将交互的结果展现给终端用户 因为微软一开始就选择了基于视图的设计方案,所以架构本身很难向基于用户交互的设计思

asp.net的服务器控件客户端空件的区别以及如何刷新页面不靠数据库数据停留在页面

区别:服务器端控件都会有个runat="Server"属性,这样才能够在后台对其进行设置修改,也就是在cs代码里面能对其修改设置.你做下测试 你放个HTML控件 在CS代码是引用不出控件名的然后你个HTML控件加上runat="Server" 在CS代码就能引用该控件了本质上ASP.NET 的服务器控件 解析后返回到前台还是HTML控件你建个页面 放一个asp:textbox上去然后运行页面,然后查看页面源文件你会发现放上的服务器控件变成了HTML的inupt ty

【ASP.NET Core】AddMvc和AddMvcCore的区别

AddMvcCore() method only adds the core MVC services. AddMvc() method adds all the required MVC services. AddMvc() method calls AddMvcCore() method internally. AddMvcCore()更加简洁,只添加了MVC核心服务. 而AddMvc()添加了MVC所需要的所有组件. AddMvc()内部调用了AddMvcCore(),这也就使得AddMv