WEB开发网
开发学院软件开发C语言 c#扩展方法奇思妙用高级篇三:Enumerable.Cast<T>... 阅读

c#扩展方法奇思妙用高级篇三:Enumerable.Cast<T>应用

 2010-09-30 20:50:58 来源:WEB开发网   
核心提示:Enumerable.Cast<T>用于将IEnumerable转换为泛型版本IEnumerable<T>,转换后可尽情享用Enumerable的其它方法(如Where、Select),c#扩展方法奇思妙用高级篇三:Enumerable.Cast<T>应用,给我们的编码带来极大便利,

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     }

1 2 3 4  下一页

Tags:扩展 方法 奇思

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接