var dtDy = (from d in dtDytemp
select new {d.Id ,d.dymc }).ToList() ;
dtDy.Add(new {Id = 1, dymc = "公共会员"});
IEnumerable中没有Add方法,只能ToList后才能增加
转载于:https://www.cnblogs.com/xjt360/p/3896857.html
var dtDy = (from d in dtDytemp select new {d.Id ,d.dymc }).ToList() ; dtDy.Add(new {Id = 1, dymc = "公共会员"});IEnumerable中没有Add方法,只能ToList后才能增加转载于:https://www.cnblogs.com/xjt3...
5.5 单选控件和单选组控件(RadioButton 和RadioButtonList)
5.5.1 单选控件(RadioButton)
5.5.2 单选组控件(RadioButtonList)
5.6 复选框控件和复选组控件(CheckBox 和CheckBoxList)
5.6.1 复选框控件(CheckBox)
5.6.2 复选组控件(CheckBoxList)
5.7 列表控件(DropDownList,ListBox 和BulletedList)
5.7.1 DropDownList 列表控件
5.7.2 ListBox 列表控件
5.7.3 BulletedList 列表控件
第一篇窗口与界面编程 11
5.8 面板控件(Panel)
5.9 占位控件(PlaceHolder)
5.10 日历控件(Calendar)
5.10.1 日历控件的样式
5.10.2 日历控件的事件
5.11 广告控件(AdRotator)
5.12 文件上传控件(FileUpload)
5.13 视图控件(MultiView 和View)
5.14 表控件(Table)
5.15 向导控件(Wizard)
5.15.1 向导控件的样式
5.15.2 导航控件的事件
5.16 XML 控件
5.17 验证控件
5.17.1 表单验证控件(RequiredFieldValidator)
5.17.2 比较验证控件(CompareValidator)
5.17.3 范围验证控件(RangeValidator)
5.17.4 正则验证控件(RegularExpressionValidator)
5.17.5
自定义
逻辑验证控件(CustomValidator)
5.17.6 验证组控件(ValidationSummary)
5.18 导航控件
5.19 其他控件
5.19.1 隐藏输入框控件(HiddenField)
5.19.2 图片热点控件(ImageMap)
5.19.3 静态标签控件(Lieral)
5.19.4 动态缓存更新控件(Substitution)
5.20 小结
第 6 章 Web 窗体的高级控件
6.1 登录控件
6.1.1 登录控件(Login)
6.1.2 登录名称控件(LoginName)
6.1.3 登录视图控件(LoginView)
6.1.4 登录状态控件(LoginStatus)
6.1.5 密码恢复控件(PasswordRecovery)
6.1.6 密码更改控件(ChangePassword)
12 第一篇 窗口与界面编程
6.1.7 生成用户控件(CreateUserWizard)
6.2 网站管理工具
6.2.1 启动管理工具
6.2.2 用户管理
6.2.3 用户角色
6.2.4 访问规则管理
2.6.5 应用程序配置
6.3 使用登录控件
6.3.1 生成用户控件(CreateUserWizard)
6.3.2 密码更改控件(ChangePassword)
6.4 小结
第三篇
数据
操作篇
第 7 章
数据
库与 ADO.NET 基础
7.1
数据
库基础
7.1.1 结构化查询语言
7.1.2 表和视图
7.1.3 存储过程和触发器
7.2 使用SQL Server 2005 管理
数据
库
7.2.1 初步认识SQL Server 2005
7.2.2 创建
数据
库
7.2.3 删除
数据
库
7.2.4 备份
数据
库
7.2.5 还原
数据
库
7.2.6 创建表
7.2.7 删除表
7.2.8 创建
数据
库关系图
7.3 ADO.NET 连接SQL
数据
库
7.3.1 ADO.NET 基础
7.3.2 连接SQL
数据
库
7.3.3 ADO.NET 过程
7.4 ADO 与ADO.NET
7.4.1 ADO 概述
7.4.2 ADO.NET 与ADO
第一篇窗口与界面编程 13
7.5 ADO.NET 常用对象
7.6 Connection 连接对象
7.6.1 连接SQL
数据
库
7.6.2 连接Access
数据
库
7.6.3 打开和关闭连接
7.7 DataAdapter 适配器对象
7.8 Command 执行对象
7.8.1 ExecuteNonQuery 方法
7.8.2 ExecuteNonQuery 执行存储过程
7.8.3 ExecuteScalar 方法
7.9 DataSet
数据
集对象
7.9.1 DataSet
数据
集基本对象
7.9.2 DataTable
数据
表对象
7.9.3 DataRow
数据
行对象
7.9.4 DataView
数据
视图对象
7.10 DataReader
数据
访问对象
7.10.1 DataReader 对象概述
7.10.2 DataReader 读取
数据
库
7.10.3 异常处理
7.11 连接池概述
7.12 参数化查询
7.13 小结
第 8 章 Web 窗体的
数据
控件
8.1
数据
源控件
8.1.1 SQL
数据
源控件(SqlDataSource)
8.1.2 Access
数据
源控件(AccessDataSource)
8.1.3 目标
数据
源控件(ObjectDataSource)
8.1.4 LINQ
数据
源控件(LinqDataSource)
8.1.5 Xml
数据
源控件(XmlDataSource)
8.1.6 站点导航控件(SiteMapDataSource)
8.2 重复列表控件(Repeater)
8.3
数据
列表控件(DataList)
8.4
数据
列表控件(GridView)
8.5
数据
绑定控件(FormView)
8.6
数据
绑定控件(DetailsView)
14 第一篇 窗口与界面编程
8.7
数据
绑定控件(ListView)
8.8
数据
绑定控件(DataPager)
8.9 小结
第 9 章 ASP.NET 操作
数据
库
9.1 使用ADO.NET 操作
数据
库
9.1.1 使用ExecuteReader()操作
数据
库
9.1.2 使用ExecuteNonQuery()操作
数据
库
9.1.3 使用ExecuteScalar()操作
数据
库
9.1.4 使用ExecuteXmlReader()操作
数据
库
9.2 ASP.NET 创建和插入记录
9.2.1 SQL INSERT
数据
插入语句
9.2.2 使用Command 对象更新记录
9.2.3 使用DataSet
数据
集插入记录
9.3 ASP.NET 更新
数据
库
9.3.1 SQL UPDATE
数据
更新语句
9.3.2 使用Command 对象更新记录
9.3.3 使用DataSet
数据
集更新记录
9.4 ASP.NET 删除
数据
9.4.1 SQL DELETE
数据
删除语句
9.4.2 使用Command 对象删除记录
9.4.3 使用DataSet
数据
集删除记录
9.5 使用存储过程
9.5.1 存储过程的优点
9.5.2 创建存储过程
9.5.3 调用存储过程
9.6 ASP.NET
数据
库操作实例
9.6.1 制作用户界面(UI)
9.6.2 使用GridView 显示、删除、修改
数据
9.6.3 使用DataList 显示
数据
9.6.4 DataList 分页实现
9.6.5 使用SQLHelper 操作
数据
库
9.7 小结
第 10 章访问其他
数据
源
10.1 使用ODBC .NET Data Provider
第一篇窗口与界面编程 15
10.1.1 ODBC .NET Data Provider 简介
10.1.2 建立连接
10.2 使用OLE DB.NET Data Provider
10.2.1 OLE DB.NET Data Provider 简介
10.2.2 建立连接
10.3 访问MySql
10.3.1 MySql 简介
10.3.2 建立连接
10.4 访问Excel
10.4.1 Excel 简介
10.4.2 建立连接
10.5 访问txt
10.5.1 使用ODBE.NET Data Provider 连接txt
10.5.2 使用OLE DB .NET Data Provider 连接txt
10.5.3 使用System.IO 命名空间
10.6 访问SQLite
10.6.1 SQLite 简介
10.6.2 SQLite 连接方法
10.7 小结
第四篇 ASP.NET网络编程
第 11 章用户控件和
自定义
控件
11.1 用户控件
11.1.1 什么是用户控件
11.1.2 编写一个简单的控件
11.1.3 将Web 窗体转换成用户控件
11.2
自定义
控件
11.2.1 实现
自定义
控件
11.2.2 复合
自定义
控件
11.3 用户控件和
自定义
控件的异同
11.4 用户控件示例
11.4.1 ASP.NET 登录控件
11.4.2 ASP.NET 登录控件的开发
11.4.3 ASP.NET 登录控件的使用
16 第一篇 窗口与界面编程
11.5
自定义
控件实例
11.5.1 ASP.NET 分页控件
11.5.2 ASP.NET 分页控件的使用
11.6 小结
第 12 章 ASP.NET 的皮肤、主题和母版页
12.1 皮肤和主题
12.1.1 CSS 简介
12.1.2 CSS 基础
12.1.3 CSS 常用属性
12.1.4 将CSS 应用在控件上
12.1.5 主题和皮肤
12.1.6 页面主题和全局主题
12.1.7 应用和禁用主题
12.1.8 用编程的方法控制主题
12.2 母版页
12.2.1 母版页基础
12.2.2 内容窗体
12.2.3 母版页的运行方法
12.2.4 嵌套母版页
12.3 Microsoft Expression 2
12.3.1 Microsoft Expression 2 简介
12.3.2 安装Microsoft Expression 2
12.4 使用Microsoft Expression Web 2 制作页面
12.4.1 创建ASPX 页面
12.4.2 创建CSS 层叠样式表
12.4.3 创建框架集
12.5 小结
第 13 章 ASP.NET 内置对象,应用程序配置和缓存
13.1 ASP.NET 内置对象
13.1.1 Request 传递请求对象
13.1.2 Response 请求响应对象
13.1.3 Application 状态对象
13.1.4 Session 状态对象
13.1.5 Server 服务对象
第一篇窗口与界面编程 17
13.1.6 Cookie 状态对象
13.1.7 Cache 缓存对象
13.1.8 Global.asax 配置
13.2 ASP.NET 应用程序配置
13.2.1 ASP.NET 应用程序配置
13.2.2 Web.config 配置文件
13.2.3 ASP.NET 基本配置节
13.3 ASP.NET 缓存功能
13.3.1 缓存概述
13.3.2 页面输出缓存
13.3.3 页面部分缓存
13.3.4 应用程序
数据
缓存
13.3.5 检索应用程序
数据
缓存对象
13.4 小结
第 14 章 ASP.NET XML 和Web Service
14.1 XML 简介
14.2 读写XML
14.2.1 XML 与HTML
14.2.2 创建XML 文档
14.2.3 XML 控件
14.2.4 XML 文件读取类(XmlTextReader)
14.2.5 XML 文件编写类(XmlTextWriter)
14.2.6 XML 文本文档类(XmlDocument)
14.3 XML 串行化
14.3.1 XmlSerializer 串行化类
14.3.2 基本串行化
14.4 XML 样式表XSL
14.4.1 XSL 简介
14.4.2 使用XSLT
14.5 Web 服务(Web Service)
14.5.1 什么是Web 服务
14.5.2 Web 服务体系结构
14.5.3 Web 服务协议栈
14.6 简单Web Service 示例
14.7
自定义
Web Service
18 第一篇 窗口与界面编程
14.7.1 创建
自定义
的Web Service
14.7.2 使用
自定义
的Web Service
14.8 小结
第五篇 ASP.NET 3.5 高级编程
第 15 章图形图像编程
15.1 图形图像基础
15.1.1 图像布局
15.1.2 GDI+简介
15.1.3 绘制线条示例
15.1.4 .NET Framework 绘图类
15.2 图形编程
15.2.1 Graphics 类
15.2.2 绘制基本图形
15.2.3 图形绘制实例
15.3 绘制文字特效
15.3.1 投影特效
15.3.2 倒影特效
15.3.3 旋转特效
15.4 绘制图片
15.4.1 载入图像文件
15.4.2 GDI+输出图像
15.5 图像特效处理
15.5.1 底片效果
15.5.2 浮雕效果
15.6 小结
第 16 章 ASP.NET 3.5 和AJAX
16.1 AJAX 基础
16.1.1 什么是AJAX
16.1.2 ASP.NET AJAX 入门
16.1.3 ASP.NET 2.0 AJAX
16.1.4 ASP.NET 3.5 AJAX
第一篇窗口与界面编程 19
16.1.5 AJAX 简单示例
16.2 ASP.NET 3.5AJAX 控件
16.2.1 脚本管理控件(ScriptManger)
16.2.2 脚本管理控件(ScriptMangerProxy)
16.2.3 时间控件(Timer)
16.2.4 更新区域控件(UpdatePanel)
16.2.5 更新进度控件(UpdateProgress)
16.3 AJAX 编程
16.3.1
自定义
异常处理
16.3.2 使用母版页的UpdatePanel
16.3.3 母版页刷新内容窗体
16.4 小结
第 17 章 ASP.NET MVC 基础
17.1 了解MVC
17.1.1 MVC 和Web Form
17.1.2 ASP.NET MVC 的运行结构
17.2 ASP.NET MVC 基础
17.2.1 安装ASP.NET MVC
17.2.2 新建一个MVC 应用程序
17.2.3 ASP.NET MVC 应用程序的结构
17.2.4 运行ASP.NET MVC 应用程序
17.3 ASP.NET MVC 原理
17.3.1 ASP.NET MVC 运行流程
17.3.2 ASP.NET MVC 工作原理
17.4 ASP.NET MVC 开发
17.4.1 创建ASP.NET MVC 页面
17.4.2 ASP.NET MVC
数据
呈现(ViewData)
17.4.3 ASP.NET MVC 跨页
数据
呈现(TempData)
17.4.4 ASP.NET MVC 页面重定向
17.4.5 ASP.NET MVC URL 路由(URLRouting)
17.4.6 ASP.NET MVC 控件辅助工具(Helper)
17.4.7 ASP.NET MVC 表单传值
17.5 小结
第 18 章 WCF 开发基础
20 第一篇 窗口与界面编程
18.1 了解WCF
18.1.1 什么是WCF
18.1.2 为什么需要WCF
18.2 WCF 基础
18.2.1 服务
18.2.2 地址
18.2.3 契约
18.3 WCF 应用
18.3.1 创建WCF 应用
18.3.2 创建WCF 方法
18.4 WCF 消息传递
18.4.1 消息传递
18.4.2 消息操作
18.5 使用WCF 服务
18.5.1 在客户端添加WCF 服务
18.5.2 在客户端使用WCF 服务
18.6 小结
第 19 章 WPF 开发基础
19.1 了解WPF
19.1.1 什么是WPF
19.2 WPF 的应用范围
19.2 WPF 和Microsoft Expression
19.2.1 使用Microsoft Expression Blend 设计WPF
19.2.2 WPF 控件样式
19.2.3 浅谈XAML
19.2.4 WPF 控件层次
19.3 WPF 应用程序开发
19.3.1 WPF 动画事件
19.3.2 WPF 时间轴
19.3.3 WPF 事件处理
19.4 WPF 系统开发
19.4.1 WPF 系统需求
19.4.2 WPF 界面开发
19.4.3 WPF 动画制作
19.4.4 WPF 事件编写
第一篇窗口与界面编程 21
19.5 小结
第六篇 ASP.NET 3.5 与LINQ
第20 章 ASP.NET 3.5 与LINQ
20.1 什么是LINQ
20.1.1 LINQ 起源
20.1.2 LINQ 构架
20.1.3 LINQ 与Visual Studio 2008 新特性
20.2 LINQ 与Web 应用程序
20.2.1 创建使用LINQ 的Web 应用程序
20.2.2 基本的LINQ
数据
查询
20.2.3
IEnumerable
和
IEnumerable
<T>接口
20.2.4 IQueryProvider 和IQueryable<T>接口
20.2.5 LINQ 相关的命名空间
20.3 Lambda 表达式
20.3.1 匿名方法
20.3.2 Lambda 表达式基础
20.3.3 Lambda 表达式格式
20.3.4 Lambda 表达式树
20.3.5 访问Lambda 表达式树
20.4 小结
第 21 章使用 LINQ 查询
21.1 LINQ 查询概述
21.1.1 准备
数据
源
21.1.2 使用LINQ
21.1.3 执行LINQ 查询
21.2 LINQ 查询语法概述
21.3 基本子句
21.3.1 from 查询子句
21.3.2 where 条件子句
21.3.3 select 选择子句
21.3.4 group 分组子句
21.3.5 orderby 排序子句
22 第一篇 窗口与界面编程
21.3.6 into 连接子句
21.3.7 join 连接子句
21.3.8 let 临时表达式子句
21.4 LINQ 查询操作
21.4.1 LINQ 查询概述
21.4.2 投影操作
21.4.3 筛选操作
21.4.4 排序操作
21.4.5 聚合操作
21.5 使用LINQ 查询和操作
数据
库
21.5.1 简单查询
21.5.2 建立连接
21.5.3 插入
数据
21.5.4 修改
数据
21.5.5 删除
数据
21.6 LINQ 与MVC
21.6.1 创建ASP.NET MVC 应用程序
21.6.2 创建LINQ to SQL
21.6.3
数据
查询
21.7 小结
第七篇 ASP.NET 3.5 模块开发
第 22 章注册模块设计
22.1 学习要点
22.2 系统设计
22.2.1 模块功能描述
22.2.2 模块流程分析
22.3
数据
库设计
22.3.1
数据
库的分析和设计
22.3.2
数据
表的创建
22.4 界面设计
22.4.1 基本界面
22.4.2 创建CSS
22.5 代码实现
第一篇窗口与界面编程 23
22.5.1 验证控制
22.5.2 过滤输入信息
22.5.3 插入注册信息
22.5.4 管理员页面
22.6 实例演示
22.7 小结
第 23 章登录模块设计
23.1 学习要点
23.2 系统设计
23.2.1 模块功能描述
22.2.2 模块流程分析
23.3
数据
库设计
23.3.1
数据
库设计分析
23.3.2
数据
库表的创建
23.4 界面设计
23.4.1 基本界面
23.4.2 创建CSS
23.4.3 发送密码页面
23.5 代码实现
23.5.1 登录代码实现
23.5.2 邮件发送页面
23.5.3 根据不同的用户显示不同的内容
23.6 实例演示
23.7 小结
第 24 章广告模块设计
24.1 学习要点
24.2 系统设计
24.2.1 模块功能描述
24.2.2 模块流程分析
24.3
数据
库设计
24.3.1
数据
库设计分析
24.3.2
数据
库表的创建
24.4 界面设计
24.4.1 发布广告界面
24 第一篇 窗口与界面编程
24.4.2 发布广告页
数据
源配置
24.4.3 修改广告界面
24.4.4 管理广告界面
24.4.5 分类管理界面
24.5 代码实现
24.5.1 广告添加功能
24.5.2 广告修改功能
24.5.3
自定义
控件的实现
24.6 实例演示
24.7 小结
第 25 章新闻模块设计
25.1 学习要点
25.2 系统设计
25.2.1 模块功能描述
25.2.2 模块流程分析
25.3
数据
库设计
23.3.1
数据
库设计
25.3.2
数据
表的创建
25.4 界面设计
25.4.1 登录界面
25.4.2 后台框架集
25.4.3 新闻发布页面
25.4.4 新闻修改页面
25.4.5 新闻管理页面
25.4.6 新闻分类管理页面
25.5 代码实现
25.5.1 导航菜单配置
25.5.2 身份验证页面
25.5.3 新闻发布页面
25.5.4 静态生成功能
25.5.5 新闻显示页面
25.5.6 静态模板编写
25.6 实例演示
25.7 小结
第 26 章投票模块设计
第一篇窗口与界面编程 25
26.1 学习要点
26.2 系统设计
26.2.1 模块功能描述
26.2.2 模块流程分析
26.3
数据
库设计
26.3.1
数据
库设计
26.3.2
数据
表的创建
26.4 界面设计
26.4.1 后台框架集
26.4.2 投票管理页面
26.4.3 投票发布页面
26.4.4 投票修改页面
26.4.5 投票删除页面
26.5 代码实现
26.5.1 添加投票代码实现
26.5.2 修改投票代码实现
26.5.3 删除投票代码实现
26.5.4 显示投票代码实现
26.5.5 用户投票代码实现
26.6 实例演示
26.7 小结
第 27 章聊天模块设计
27.1 学习要点
27.2 系统设计
27.2.1 模块功能描述
27.2.2 模块流程分析
27.3 界面设计
27.3.1 登录界面设计
27.3.2 登录界面CSS
27.3.3 聊天室显示界面
27.3.4 聊天室界面CSS
27.4 代码实现
27.4.1 登录代码实现
27.4.2 多人聊天代码实现
27.4.3 单人聊天代码实现
26 第一篇 窗口与界面编程
27.4.4 聊天记录保存实现
27.5 实例演示
27.6 小结
第六篇 ASP.NET 3.5 应用实例
第 28 章制作一个 ASP.NET 留言本
28.1 系统设计
28.1.1 需求分析
28.1.2 系统功能设计
28.1.3 模块功能划分
28.2
数据
库设计
28.2.1
数据
库的分析和设计
28.2.2
数据
表的创建
28.2.3
数据
表关系图
28.3 系统公用模块的创建
28.3.1 创建CSS
28.3.2 使用SQLHepler
28.3.3 配置Web.config
28.4 系统界面和代码实现
28.4.1 留言板用户控件
28.4.2 管理员登录实现
28.4.3 用户注册登录实现
28.4.4 用户登录实现
28.4.5 留言本界面布局
28.4.6 留言功能实现
28.4.7 回复功能实现
28.4.8 删除功能的实现
28.4.9 用户索引实现
28.5 用户体验优化
28.5.1 AJAX 留言实现
28.5.2 AJAX
数据
重绑定
28.5.3 系统导航实现
28.5.4 侧边栏界面优化
28.6 用户功能实现
第一篇窗口与界面编程 27
28.6.1 用户信息界面
28.6.2 用户信息修改实现
28.6.3 用户信息删除实现
28.6.4 用户注销
28.7 实例演示
28.7.1 准备
数据
源
28.7.2 基本实例演示
28.7.3 用户功能演示
28.8 小结
第 29 章制作一个 ASP.NET 校友录系统
第 29 章制作一个ASP.NET 校友录系统
29.1 系统设计
29.1.1 需求分析
29.1.2 系统功能设计
29.1.3 模块功能划分
29.2
数据
库设计
29.2.1
数据
库分析和设计
29.2.2
数据
表的创建
29.3
数据
表关系图
29.4 系统公用模块的创建
29.4.1 使用Fckeditor
29.4.2 使用SQLHelper
29.4.3 配置Web.config
29.5 系统界面和代码实现
29.5.1 用户注册实现
29.5.2 用户登录实现
29.5.3 校友录页面规划
29.5.4
自定义
控件实现
29.5.5 校友录页面实现
29.5.6 日志发布实现
29.5.7 日志修改实现
29.5.8 管理员日志删除
29.5.9 日志显示页面
29.5.10 用户索引页面
29.5.11 管理员用户删除
28 第一篇 窗口与界面编程
29.6 用户体验优化
29.6.1 超链接样式优化
29.6.2 默认首页优化
29.6.3 导航栏编写
29.6.4 AJAX 留言优化
29.6.5 优化留言表情
29.7 高级功能实现
29.7.1 后台管理页面实现
29.7.2 日志管理实现
29.7.3 日志修改和删除实现
29.7.4 评论删除实现
29.7.5 板报功能实现
29.7.6 用户修改和删除实现
29.7.7 用户权限管理
29.7.8 权限及注销实现
29.8 实例演示
29.8.1 准备
数据
源
29.8.2 基本实例演示
29.8.3 管理后台演示
29.9 小结
public int ID { get; set; }
public string Name { get; set; }
public string Region { get; set; }
public decimal Price { get; set; }
pub...
也可以用个扩展方法:
public static
IEnumerable
<T> Add<T>(this
IEnumerable
<T> e, T value) {
for...
“你每次都选择合适的
数据
结构了吗?” - Jeffery Zhao
.NET面试题系列目录
ICollection<T>继承
IEnumerable
<T>。在其基础上,
增加
了Add,Remove等方法,可以修改集合的内容。
IEnumerable
<T>的直接继承者还有Stack<T>和Queue<T>。
所有标准的泛型集合都实...
2 // 表示可按照索引单独访问的对象的非泛型集合。
3 [ComVisible(true)]
4 public interface IList : ICollection,
IEnumerable
5 ...
`ICollection<T>` 和 `
IEnumerable
<T>` 都是 .NET Framework
中
的泛型接口,用于表示集合类型。
`
IEnumerable
<T>` 接口表示一组可以枚举的元素,该接口只包含一个方法 `GetEnumerator()`,该方法返回一个枚举器,用于遍历集合
中
的元素。该接口是只读的,不能对集合进行修改。
`ICollection<T>` 接口扩展了 `
IEnumerable
<T>` 接口,表示一组可以枚举的元素,并且还可以对集合进行修改。该接口包含许多方法,如 `Add()`, `Remove()`, `Contains()`, `Clear()` 等,用于对集合进行添加、删除、查找和清空操作。
因此,`ICollection<T>` 接口比 `
IEnumerable
<T>` 接口更加丰富,可以进行更多的操作。但是,由于 `
IEnumerable
<T>` 接口只提供了枚举器方法,因此它比 `ICollection<T>` 接口更加通用,可以用于表示任何可以枚举的集合类型。