c#扩展方法奇思妙用高级篇三:Enumerable.Cast<T>应用
2010-09-30 20:50:58 来源:WEB开发网Enumerable.Cast<T>用于将IEnumerable转换为泛型版本IEnumerable<T>。转换后可尽情享用Enumerable的其它方法(如Where、Select),给我们的编码带来极大便利。
但MSDN中仅给出一个转换ArrayList的例子,很多人看了感觉现在都在用List<T>,还有谁会用ArrayList,Cast<T>没多少用处,除非处理一些之前遗留的一些代码。
其实Cast<T>并非如此简单,它可以用在很多地方。
先看MSDN中举的例子吧:
1 System.Collections.ArrayList fruits = new System.Collections.ArrayList();
2 fruits.Add("apple");
3 fruits.Add("mango");
4
5 IEnumerable<string> query = fruits.Cast<string>();
6 foreach (string fruit in query) Console.WriteLine(fruit);
这个例子比较简单,很容易理解。
同样.Net 1.x中的其它几个集合类也可如上使用,如Array、非泛型版的List...
打断,有没有非泛型版的List?我没太用过.Net 1.x,不太清楚,不过窗体控件中是有个List控件(ASP.Net)和一个ListView控件(WinForm)。
就以ListView为例子吧,ListView控件可以包含很多项,也可以说是一个集合,就让我们来看看它的Items属性吧!
1 public class ListView : Control
2 {
3
4 public ListView.ListViewItemCollection Items { get; }
5
6 public class ListViewItemCollection : IList, ICollection, IEnumerable { }
7
8 }
- ››扩展Axis2框架,支持基于JVM的脚本语言
- ››扩展WebSphere Portal V6个性化功能
- ››扩展JavaScript的时候,千万要保留其原来的所有功...
- ››扩展数据:如何为 Model 750 服务器选择 I/O 扩展...
- ››扩展 JDT 实现自动代码注释与格式化
- ››扩展 secldap 的功能以验证多个数据源
- ››扩展 JUnit4 以促进测试驱动开发
- ››扩展 JUnit 测试并行程序
- ››扩展的ToolStripEx控件
- ››扩展 Eclipse 的 Java 开发工具
- ››扩展 Eclipse 辅助和规范开发流程
- ››扩展方法 DataTable 和List 相互转换
更多精彩
赞助商链接