成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

三個經典案例為你解疑VB.NET對象列表

開發 后端
文章主要介紹了通用VB.NET對象列表總結,有三個示例-即使用ForEach, FindAll,和Sort-來闡述對象列表的工作原理,希望對大家有幫助。

我們要如何使用List(of T)編程,我們需要了解如何部署.NET框架所提供的多種方法,在下面的文章中我們加以分析。我用三個示例演示——使用ForEach, FindAll,和Sort——來闡述同樣列表類的工作原理。

VB.NET對象列表***步是要創建一個同用列表。你可以從多種途徑獲取數據,但是最簡單的方法是添加。文本中,我們會編寫代碼以便為舉例中的集來分類。因此,下面我們就來講講創建集的代碼。首先,我需要一個能代表集中的Bottle的對象。為此而編寫的代碼是完全符合標準的,而且事實上,VB.NET 2008 Express Intellisense會為你寫好大部分的代碼。以下是我的對象:

  1. Public Class Bottle "internalProperties"Public Property Brand() As String  
  2. Public Property Name() As String  
  3. Public Property Category() As String  
  4. Public Property Size() As Decimal  
  5. Public Sub New( _  
  6. End Sub  
  7. End Class  

為了創建集,我需要添加項目:

  1. Dim Cabinet As List(Of Bottle) = _ "New List(Of Bottle)Cabinet.Add(New Bottle( _  
  2. "Castle Creek", _  
  3. "Uintah Blanc", _  
  4. "Wine", 750))  
  5. Cabinet.Add(New Bottle( _  
  6. "Zion Canyon Brewing Company", _  
  7. "Springdale Amber Ale", _  
  8. "Beer", 355))  
  9. Cabinet.Add(New Bottle( _  
  10. "Spanish Valley Vineyards", _  
  11. "Syrah", _  
  12. "Wine", 750))  
  13. Cabinet.Add(New Bottle( _  
  14. "Wasatch Beers", _  
  15. "Polygamy Porter", _  
  16. "Beer", 355))Cabinet.Add(New Bottle( _  
  17. "Squatters Beer", _  
  18. "Provo Girl Pilsner", _  
  19. "Beer", 355))  

所有的這些都是VB.NET1.0中的標準代碼。但是,要通過定義我們自己的Bottle對象來注明。我們會在相同集中的多類型中獲益。

下面我們將介紹VB.NET對象列表 ForEach, FindAll, 和Sort方法。我們使用這些方法的時候,就會發現其中的樂趣了。首先,讓我們部署ForEach方法。微軟文件包含了其使用句法定義。

  1. Dim instance As List Dim action As Action(Of T)instance.ForEach(action)  

微軟進一步將委派行為定義為一種可以將對象傳遞的行為進行演示的一種方法。目前的List(T)要素是單獨傳送到Action(T)代表的。***件要做的事就是需要編寫被委派方法的代碼。對這一關鍵點存在誤區是大部分人對于VB.NET感到困惑的原因。該項功能或子程序是所有用于Of類型對象的自定義編碼所完成的場所。當我們能夠正確使用這一功能時,過程就很簡單。在我們的舉例中,對它的使用很簡單。Bottle的整個示例都被傳送了,且子程序會從中抽選出任何需要的數據。

  1. Sub displayBottle(ByVal b As Bottle) Console.WriteLine(b.Brand & " - " & b.Name)End Sub  

VB.NET對象列表編寫ForEach方法,只需要填寫代表的地址就可以了。

  1. Cabinet.ForEach(AddressOf displayBottle)  

FindAll稍微有些復雜。微軟關于FindAll的說明如下:

  1. Dim instance As List Dim match As Predicate(Of T)Dim returnValue As List(Of T)  
  2. returnValue = instance.FindAll(match)  

現在,在我們的句法中出現了不同的要素,Predicate(T)。據微軟稱,這將代表定義了一套標準以及能確定指定對象是否符合這些標準的方法。換句話說,我們可以創建任何能在列表中找尋數據的代碼。我編寫的Predicate(Of T)可以對Beer種類進行搜尋:

  1. Function findBeer(ByVal b As Bottle) _ As BooleanIf (b.Category = "Beer") Then  
  2. Return True  
  3. Else  
  4. Return FalseEnd IfEnd Function  

FindAll返回的是整個List(T)而不是調用列表中每個項目的代表代碼。這個List(T)只包含匹配Predicate(T)的數據。對第二個List(T)的定義和操作也取決于我們編寫的代碼。重復一遍,我的代碼是為免冗繁而簡化了。

  1. Dim sublist As List(Of Bottle) sublist = Cabinet.FindAll(AddressOf findBeer)For Each result As Bottle In sublist  
  2. Console.WriteLine(result.Brand & " - " & result.Name)  
  3. Next   


本文探討的***一個方法是Sort。微軟使用了一些你或許并不熟悉的術語對其進行解釋。其實有四個不同的Sort方法負載:

  1. Sort()  
  2. Sort(Icomparer(T)  
  3. Sort(Comparison(T)4. Sort(Int32,Int32,Icomparer(T)   

這讓我們能夠用.NET框架中定義的Sort方法編寫自己的代碼或者只是通過使用起始位置和計數參數來收集集合的一部分。

在這個例子中,我為自己的比較器編寫了另一個代表。由于我希望通過我的分類方式來分類,于是就只是抽去了傳所送的Bottle對象中每個例子的值。

  1. Private Shared Function sortCabinet( _ ByVal x As Bottle, ByVal y As Bottle)   
  2. As IntegerReturn x.Category.CompareTo(y.Category)  
  3. End Function  


Sort方法實際上對原始List(T)進行了重新排列。所以這就是該執行該方法后發生的一個過程。

  1. Cabinet.Sort(AddressOf sortCabinet) For   
  2. Each result As Bottle In CabinetConsole.WriteLine(result.Brand & " - " & result.Name)  
  3. Next  

這些方法被選擇用來闡述List(T)中編寫框架方法代碼的主要方式。你會發現它們使得List(T)更加有用。

【編輯推薦】

  1. 實例講述VB.NET使用Log4Net
  2. 三分鐘學會VB.NET轉換形態
  3. VB.NET獲取硬盤信息四大法寶
  4. 講述VB.NET調用Excel的好處
  5. 簡單例子概述VB.NET新窗體
責任編輯:田樹 來源: 博客
相關推薦

2009-11-03 10:30:47

VB.NET繼承

2009-10-27 09:59:17

VB.NET動態代碼

2009-10-26 16:12:19

VB.NET正則表達式

2009-10-23 16:53:16

VB.NET語法規則

2009-11-10 12:12:57

VB.NET函數

2009-10-28 09:02:41

VB.NET開發正則表

2009-10-23 17:40:24

VB.NET繪圖方法

2009-11-12 15:55:31

ADO.NET對象服務

2009-11-03 13:33:39

VB.NET對象列表

2009-11-03 10:09:48

VB.NET對象

2009-10-29 14:02:24

VB和VB.NET比較

2009-10-28 16:10:16

VB.NET程序

2009-10-27 15:42:04

VB.NET文件對象

2009-04-30 16:21:37

VB.NET通用對象列表

2009-10-29 16:19:58

VB.NET文件操作

2009-10-28 11:13:39

VB.NET虛擬框架

2009-10-26 14:36:33

VB.NET數據自增

2009-11-10 14:30:33

VB.NET多窗體

2009-10-09 15:59:41

VB.NET對象

2009-10-14 13:21:46

VB.NET Acco
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人影院网站ww555久久精品 | 欧美又大粗又爽又黄大片视频 | 99精品视频一区二区三区 | 国产精品美女久久久久aⅴ国产馆 | 精品久久久一区二区 | 久久中文免费视频 | 激情网五月天 | 亚洲高清免费视频 | 羞羞色影院 | 久久一区二区三区电影 | 国产福利在线看 | 国产性生活一级片 | 亚洲免费婷婷 | 亚洲综合久久久 | 天天插天天操 | 日韩在线视频一区 | 精品一区久久 | 天堂综合 | 国产一二三区电影 | 精产国产伦理一二三区 | 日韩视频在线观看一区二区 | 福利精品| 国产欧美精品一区二区色综合朱莉 | 国产亚洲一区在线 | 国产美女精品视频 | 中文字幕日韩欧美 | 久久久久国产一区二区三区 | 中文字幕在线电影观看 | 欧美性吧 | 久久国产精品一区二区三区 | 精品一区二区电影 | 欧美黄色绿像 | 福利片一区二区 | 亚洲精品乱码8久久久久久日本 | 国产精品一区二区三区久久 | 在线亚洲一区二区 | 91在线视频播放 | 一区二区三区在线 | 天堂综合网| 亚洲a视| 一区二区欧美在线 |