日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
概述C# Cast

窗體控件中是有個List控件(ASP.Net)和一個ListView控件(WinForm)。

成都服務(wù)器托管,成都創(chuàng)新互聯(lián)提供包括服務(wù)器租用、成都溫江機房、帶寬租用、云主機、機柜租用、主機租用托管、CDN網(wǎng)站加速、申請域名等業(yè)務(wù)的一體化完整服務(wù)。電話咨詢:028-86922220

就以ListView為例子吧,ListView控件可以包含很多項,也可以說是一個集合,就讓我們來看看它的Items屬性吧!

 
 
 
  1. public class ListView : Control{  
  2. public ListView.ListViewItemCollection Items { get; }  
  3. public class ListViewItemCollection : IList, ICollection, IEnumerable {    
  4. }  

ListView的Items類型是ListView.ListViewItemCollection,這個ListViewItemCollection實現(xiàn)了IEnumerable。ListView.Items正是一個非泛型的集合,因此可以應(yīng)用Cast。以下代碼假定 listBox 數(shù)據(jù)綁定在一個Employee的集合上:

 
 
 
  1. int count = listBox.Items.Cast().Count();  
  2. bool b = listBox.Items.Cast().Any(e => e.FirstName == "Bob"); 

同樣C# Cast可以用在ComboBox、DataGridView、TreeNode上:

 
 
 
  1. //ComboBox  
  2. var v1 = comboBox.Items.Cast();  
  3. //DataGridView  
  4. var v2 = dataGridView.SelectedRows.Cast();  
  5. var v3 = dataGridView.SelectedColumns.Cast();  
  6. var v4 = dataGridView.SelectedCells.Cast();  
  7. //TreeNode  
  8. var v5 = treeNode.Nodes.Cast(); 

這幾個應(yīng)用中應(yīng)該第 4 行的應(yīng)用最多,獲取選中行是DataGridView使用最頻繁的操作之一。試看下面代碼:

 
 
 
  1. //計算平均年齡  
  2. int age = dataGridView.SelectedRows.
    Cast().Average(p=>p.Age);  
  3. //統(tǒng)計所在城市  
  4. string[] cities = dataGridView.SelectedRows.
    Cast().Select(p => p.City).Distinct(); 

用了C# Cast,我們的代碼很精簡。Cast甚至還可以用在所有控件的基類Control上,它的Controls屬性也是非泛型的!

 
 
 
  1. //Control  
  2. var v6 = control.Controls.Cast(); 

看來C# Cast好像是為 Control 準(zhǔn)備,Control 類和Control 的派生類多處使用了非泛型??涩F(xiàn)在都用vs2008(甚至vs2010)了,那為什么WinForm的窗體控件還用非泛型,太落后了吧!??!確實如此,WinForm對泛型控件(Control)的支持上存在很大問題。雖然可以定義泛型控件,也可以使用,可以運行。但會有很多麻煩的,比如窗體設(shè)計器沒法顯示...那只好使用非泛型的了,好在我們有C# Cast!

【編輯推薦】

  1. C#局部類型介紹
  2. C#固定指針簡單介紹
  3. 淺析C# FTP WebRequest對象
  4. C#分部方法的應(yīng)用場景
  5. 簡單介紹VB.NET和C#

分享題目:概述C# Cast
網(wǎng)頁地址:http://www.dlmjj.cn/article/djdjcjg.html