日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

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

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

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

就以ListView為例子吧,ListView控件可以包含很多項(xiàng),也可以說(shuō)是一個(gè)集合,就讓我們來(lái)看看它的Items屬性吧!

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

ListView的Items類型是ListView.ListViewItemCollection,這個(gè)ListViewItemCollection實(shí)現(xiàn)了IEnumerable。ListView.Items正是一個(gè)非泛型的集合,因此可以應(yīng)用Cast。以下代碼假定 listBox 數(shù)據(jù)綁定在一個(gè)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(); 

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

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

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

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

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

【編輯推薦】

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

文章名稱:概述C# Cast
當(dāng)前鏈接:http://www.5511xx.com/article/djdjcjg.html