- 浏览: 2173841 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1878)
- [网站分类]ASP.NET (141)
- [网站分类]C# (80)
- [随笔分类]NET知识库 (80)
- [随笔分类]摘抄文字[非技术] (3)
- [随笔分类]养生保健 (4)
- [网站分类]读书区 (16)
- [随笔分类]赚钱 (7)
- [网站分类].NET新手区 (233)
- [随笔分类]网站 (75)
- [网站分类]企业信息化其他 (4)
- [网站分类]首页候选区 (34)
- [网站分类]转载区 (12)
- [网站分类]SQL Server (16)
- [网站分类]程序人生 (7)
- [网站分类]WinForm (2)
- [随笔分类]错误集 (12)
- [网站分类]JavaScript (3)
- [随笔分类]小说九鼎记 (69)
- [随笔分类]技术文章 (15)
- [网站分类]求职面试 (3)
- [网站分类]其他技术区 (6)
- [网站分类]非技术区 (10)
- [发布至博客园首页] (5)
- [网站分类]jQuery (6)
- [网站分类].NET精华区 (6)
- [网站分类]Html/Css (10)
- [随笔分类]加速及SEO (10)
- [网站分类]Google开发 (4)
- [随笔分类]旅游备注 (2)
- [网站分类]架构设计 (3)
- [网站分类]Linux (23)
- [随笔分类]重要注册 (3)
- [随笔分类]Linux+PHP (10)
- [网站分类]PHP (11)
- [网站分类]VS2010 (2)
- [网站分类]CLR (1)
- [网站分类]C++ (1)
- [网站分类]ASP.NET MVC (2)
- [网站分类]项目与团队管理 (1)
- [随笔分类]个人总结 (1)
- [随笔分类]问题集 (3)
- [网站分类]代码与软件发布 (1)
- [网站分类]Android开发 (1)
- [网站分类]MySQL (1)
- [网站分类]开源研究 (6)
- ddd (0)
- 好久没写blog了 (0)
- sqlserver (2)
最新评论
-
JamesLiuX:
博主,能组个队么,我是Freelancer新手。
Freelancer.com(原GAF – GetAFreelancer)帐户里的钱如何取出? -
yw10260609:
我认为在混淆前,最好把相关代码备份一下比较好,不然项目完成后, ...
DotFuscator 小记 -
日月葬花魂:
大哥 能 加我个QQ 交流一下嘛 ?51264722 我Q ...
web应用程序和Web网站区别 -
iaimg:
我想问下嵌入delphi写的程序总是出现窗体后面感觉有个主窗体 ...
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部 -
iaimg:
代码地址下不了啊!
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部
List<T>类:表示可通过索引访问的对象的强类型列表,提供用于对列表进行搜索、排序和操作的方法。 IList<T>接口:表示可按照索引单独访问的一组对象。 下面谈谈它们之间的区别: 首先,List<T>是一个类,IList<T>是一个接口。接口和类的区别是本质的,类是负责功能的实现,而接口则是负责功能的定义。所以它们的区别本质上也就是类和接口的区别。 具体来说,IList 泛型接口是 ICollection 泛型接口的子代,并且是所有泛型列表的基接口。它仅仅是所有泛型类型的接口,并没有太多方法可以方便实用,如果仅仅是作为集合数据的承载体,那么使用IList<T>完全可以胜任。但是更多的时候,我们要对集合数据进行处理,从中筛选数据或者排序。这个时候IList<T>就爱莫能助了。 1、当你只想使用接口的方法时,ILis<>这种方式比较好.他不获取实现这个接口的类的其他方法和字段,有效的节省空间. 2、IList <>是个接口,定义了一些操作方法这些方法要你自己去实现 IList <Class1> IList11 =new List <Class1>(); 这两行代码,从操作上来看,实际上都是创建了一个List<Class1>对象的实例,也就是说,他们的操作没有区别。 只是用于保存这个操作的返回值变量类型不一样而已。 那么,我们可以这么理解,这两行代码的目的不一样。 再举一个例子,比如你要实现一个集合类,但是你认为添加的时候要做一下判断,不能重复,你可以这样做: //方法1: public class MyCollection1 : List<MyItem> { public new void Add(MyItem item) { if (this.Contains(item)) return; base.Add(item); } } //方法2: public class MyCollection2 : IList<MyItem> { private List<MyItem> innerList = new List<MyItem>(); public void Add(MyItem item) { if (this.Contains(item)) return; base.Add(item); } //实现n多的方法后,附带的,有个Add方法,实现即可,实现方法略 } 如果是从List继承而来,那我如果这样写,就能跳过检查了。但是不会调用你写的Add方法,而是调用List的Add方法。 MyCollection1 mc1 = new MyCollection1(); ..... System.Collection.IList listData = mc1; listData.Add(listData[0]); 这样就不会执行你写的检查代码。但如果用下面方法,则会执行你写的Add方法: MyCollection2 mc2 = new MyCollection2(); ..... System.Collection.IList listData = mc2; listData.Add(listData[0]); 总之,正如那些高手说的: 接口实现松耦合...有利于系统的维护与重构...优化系统流程... 鼓励使用接口 这样可以实现功能和具体实现的分离 实现接口分离的原则 不是看实际需要用的 |
发表评论
-
UML
2010-08-09 11:39 1311开放分类:计算机技术计算机术语计算机科学 收藏分享到顶[6] ... -
用WebService实现调用新浪的天气预报功能
2010-07-15 21:47 2983用WebService实现调用新 ... -
Cookie简介及JSP处理Cookie的方法
2010-07-29 09:28 978Cookie简介及JSP处理Cookie的方法 一.什么是 ... -
SQL Server 2005/2008 用户数据库文件默认路径和默认备份路径修改方法
2010-06-09 22:16 1264一直想把数据库的默认 ... -
C#Winform调用网页中的JS方法
2010-07-12 11:07 2241其实还是还是相当的简单,本文将详细的用代码来展示一下如何调用, ... -
用WebService实现调用新浪的天气预报功能
2010-07-15 21:47 1514用WebService实现调用新 ... -
SQL Server 2005/2008 用户数据库文件默认路径和默认备份路径修改方法
2010-06-09 22:16 1095一直想把数据库的默认 ... -
基于 VS 2010 阐述C# 4个特性
2010-05-28 09:26 1089基于 VS 2010 阐述C# 4个特性基于 VS 20 ... -
Google AdSense中文官方博客今天公布了AdSense内容广告与AdSense搜索广告的收入分成比例
2010-05-25 09:12 1147google adsense 的广告分成比例总算是公布出来了。 ... -
权限管理数据表设计说明
2010-05-21 15:19 1091权限管理数据表设计说明 B/S系统中的权限比C/S中的更显的 ... -
权限管理的设计方法
2010-05-20 09:26 1437权限管理的设计方法是 ... -
多表分页存储过程
2010-05-17 14:25 1067分页存储过程 在网站设计,网页开发中,是要被经常遇到的。 ... -
vs2010跟vs2008比较增加了哪些功能
2010-05-18 09:10 2260随着vs2010的发布,新的 ... -
COM域名难逃实名监管 CN域名简化流程抢用户
2010-05-13 09:22 1200互联网实名制的落实第 ... -
网站安全之XSS漏洞攻击以及防范措施
2010-04-29 08:59 1445在网站开发中,安全问题是重中之重的问题,特别像一个sql注入, ... -
深入了解ASP.NET运行内幕
2010-04-28 09:04 1179做事情要知道根本所在 ... -
WebBrowser中显示乱码
2010-04-22 09:09 1752最近在开发cs项目的时候,因为嵌套了一个网页,要用到we ... -
vps配置笔记(10)架设svn服务
2010-04-21 09:41 1283linux 下面架设svn服务器,有点难度,我找了好多资料,现 ... -
IEnumerable
2010-04-16 09:12 1281在平常的代码编写中,虽然不常用到Ienumerable 但却不 ... -
JS代码实例:实现随机加载不同的CSS样式
2010-04-19 13:38 1429如果让网页浏览者每次打开页面都有新的感觉,可以通过替换css样 ...
相关推荐
在C#编程中,List和IList是两种常见的数据结构,它们都用于存储和管理对象的集合,但它们在概念和用途上有显著的差异。让我们深入探讨这两种类型的特性和区别。 首先,List是一个具体的类,它是.NET框架System....
在C#编程中,`List<T>`是.NET框架中常用的一种动态数组,它属于泛型集合,提供了丰富的功能,使得在处理一系列数据时更加灵活高效。`List<T>`类是`System.Collections.Generic`命名空间的一部分,它实现了`IList<T>`...
在这段代码中,我们创建了两个集合,一个是`List<TestClass>`,另一个是`IList<TestClass>`,但实际上是同一个`List<TestClass>`的实例。然后我们向这两个集合中添加了10000000个元素,并通过循环查找Id在1到1000...
在C#编程中,`IList<T>` 和 `List<T>` 都是非常常见的集合类型,它们在处理数据列表时有着不同的特性和用途。本文将详细阐述两者之间的主要区别,并给出在实际开发中如何选择和使用它们的建议。 首先,`IList<T>` ...
总结起来,C#中对`IList<T>`排序通常涉及`Array.Sort()`、`List<T>.Sort()`、`Enumerable.OrderBy()`等方法,以及可能需要实现`IComparable<T>`或`IComparer<T>`接口。根据具体需求选择合适的方法,可以有效地对列表...
在C#编程中,处理JSON数据是常见的任务,特别是在与Web服务交互或存储/检索配置信息时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。本文将深入...
### C#中的IList接口详解 #### 一、引言 在C#中,`IList`接口是.NET Framework集合框架的重要组成部分之一。它提供了一种灵活的方式来存储和操作对象集合,支持索引访问和迭代等功能。本文将详细介绍`IList`接口的...
在C#编程中,`IList<T>`是一个接口,它扩展了`ICollection<T>`和`IEnumerable<T>`,提供了对列表的动态数据操作能力,比如添加、删除和索引访问元素。`IList<T>`接口是许多集合类型的基接口,如`List<T>`。在实际...
IList是.NET Framework中System.Collections.Generic命名空间下的一个接口,它是List类的基接口。IList接口继承自ICollection和IEnumerable,并添加了一些额外的方法和属性,如Insert、RemoveAt等,使我们可以对列表...
在C#编程中,`IList<T>`和`List<T>`是两个常见的泛型集合类,它们在使用上有显著的差异。本文将深入探讨这两个类的区别,并解释在何时选择使用它们。 首先,`IList<T>`是一个接口,它是`ICollection<T>`的子接口,...
在C#编程语言中,`IEnumerable<T>`、`ICollection<T>`、`IList<T>`以及`List<T>`是四个常见的接口和类,它们都与集合操作密切相关,但各自具有不同的特性和用途。以下是对这些概念的详细解释: 1. **IEnumerable**...
一、List对象中的T是值类型的情况(int 类型等) 对于值类型的List直接用以下方法就可以复制: List<T> oldList = new List(); oldList.Add(..); List<T> newList = new List(oldList); 二、List对象中的T是引用...
`List<T>`是.NET Framework中的`System.Collections.Generic`命名空间下的一员,它是实现`IList<T>`接口的泛型类。`List<T>`的核心功能是提供了一个动态数组,允许我们方便地添加、删除、查找和遍历元素。它的优点...
在本篇文章中,我们将深入探讨如何使用C#中的List集合动态地绑定到TreeView控件上。这种方法在构建具有层级结构的应用程序时非常有用,尤其是在处理组织结构、文件系统或者任何类型的树状数据时。 ### 一、理解...
本文将详细讲解如何在C#中实现List对象与XML之间的转换,以便于数据的存储和传输。这个压缩包"**C#将List与xml互转_支持简单类型.rar**"包含了一个示例文本文件"**C#将List与xml互转_支持简单类型.txt**"和一个可能...
在C#编程中,`IList<T>`是.NET框架中的一种接口,它是`IList`接口的泛型版本,提供了对列表数据的操作方法。当我们处理一个`IList<T>`对象时,有时候需要确保添加的元素不与现有元素重复,以保持列表的唯一性。这个...
`List<T>`是.NET Framework中`System.Collections.Generic`命名空间下的一个泛型集合类,它实现了`IList<T>`、`ICollection<T>`和`IEnumerable<T>`接口。`List<T>`是用于存储强类型对象的动态数组,允许快速的插入和...
C# List是一种泛型集合类,属于System.Collections.Generic命名空间,实现了IList、ICollection、IEnumerable、IList、ICollection、IEnumerable接口。List类是ArrayList类的泛型等效类,使用大小可按需动态增加的...
首先,我们需要了解C#中的列表类型`List<T>`。`List<T>`是.NET框架提供的一个泛型类,它实现了`IList<T>`、`ICollection<T>`和`IEnumerable<T>`接口,提供了动态数组的功能,允许我们方便地添加、删除和查找元素。...