VB.NET中有用的通用對(duì)象列表
要使用List(of T),我們需要了解如何部署.NET框架所提供的多種方法。這也將是本文要介紹的內(nèi)容。我已經(jīng)編寫好了三個(gè)示例——使用ForEach, FindAll,和Sort——來闡述同樣列表類的工作原理。
第一步是要?jiǎng)?chuàng)建一個(gè)同用列表。你可以從多種途徑獲取數(shù)據(jù),但是最簡單的方法是添加。文本中,我們會(huì)編寫代碼以便為舉例中的集來分類。因此,下面我們就來講講創(chuàng)建集的代碼。
首先,我需要一個(gè)能代表集中的Bottle的對(duì)象。為此而編寫的代碼是完全符合標(biāo)準(zhǔn)的,而且事實(shí)上,VB.NET 2008 Express Intellisense會(huì)為你寫好大部分的代碼。以下是我的對(duì)象:
Public Class Bottle |
為了創(chuàng)建集,我需要添加項(xiàng)目:
Dim Cabinet As List(Of Bottle) = _ |
所有的這些都是VB.NET1.0中的標(biāo)準(zhǔn)代碼。但是,要通過定義我們自己的Bottle對(duì)象來注明。我們會(huì)在相同集中的多類型中獲益。
下面我們將介紹ForEach, FindAll, 和Sort方法。
我們使用這些方法的時(shí)候,就會(huì)發(fā)現(xiàn)其中的樂趣了。首先,讓我們部署ForEach方法。微軟文件包含了其使用句法定義。
Dim instance As List |
微軟進(jìn)一步將委派行為定義為一種可以將對(duì)象傳遞的行為進(jìn)行演示的一種方法。目前的List(T)要素是單獨(dú)傳送到Action(T)代表的。
第一件要做的事就是需要編寫被委派方法的代碼。對(duì)這一關(guān)鍵點(diǎn)存在誤區(qū)是大部分人對(duì)于VB.NET感到困惑的原因。該項(xiàng)功能或子程序是所有用于Of類型對(duì)象的自定義編碼所完成的場所。當(dāng)我們能夠正確使用這一功能時(shí),過程就很簡單。在我們的舉例中,對(duì)它的使用很簡單。Bottle的整個(gè)示例都被傳送了,且子程序會(huì)從中抽選出任何需要的數(shù)據(jù)。
Sub displayBottle(ByVal b As Bottle) End Sub |
編寫ForEach方法本身是很簡單的,只需要填寫代表的地址就可以了。
Cabinet.ForEach(AddressOf displayBottle) |
FindAll稍微有些復(fù)雜。微軟關(guān)于FindAll的說明如下:
Dim instance As List |
現(xiàn)在,在我們的句法中出現(xiàn)了不同的要素,Predicate(T)。據(jù)微軟稱,這將代表定義了一套標(biāo)準(zhǔn)以及能確定指定對(duì)象是否符合這些標(biāo)準(zhǔn)的方法。換句話說,我們可以創(chuàng)建任何能在列表中找尋數(shù)據(jù)的代碼。我編寫的Predicate(Of T)可以對(duì)Beer種類進(jìn)行搜尋:
Function findBeer(ByVal b As Bottle) _ |
FindAll返回的是整個(gè)List(T)而不是調(diào)用列表中每個(gè)項(xiàng)目的代表代碼。這個(gè)List(T)只包含匹配Predicate(T)的數(shù)據(jù)。對(duì)第二個(gè)List(T)的定義和操作也取決于我們編寫的代碼。重復(fù)一遍,我的代碼是為免冗繁而簡化了。
Dim sublist As List(Of Bottle) |
本文探討的最后一個(gè)方法是Sort。微軟使用了一些你或許并不熟悉的術(shù)語對(duì)其進(jìn)行解釋。其實(shí)有四個(gè)不同的Sort方法負(fù)載:
|
這讓我們能夠用.NET框架中定義的Sort方法編寫自己的代碼或者只是通過使用起始位置和計(jì)數(shù)參數(shù)來收集集合的一部分。
在這個(gè)例子中,我為自己的比較器編寫了另一個(gè)代表。由于我希望通過我的分類方式來分類,于是就只是抽去了傳所送的Bottle對(duì)象中每個(gè)例子的值。
Private Shared Function sortCabinet( _ |
Sort方法實(shí)際上對(duì)原始List(T)進(jìn)行了重新排列。所以這就是該執(zhí)行該方法后發(fā)生的一個(gè)過程。
Cabinet.Sort(AddressOf sortCabinet) |
這些方法被選擇用來闡述List(T)中編寫框架方法代碼的主要方式。你會(huì)發(fā)現(xiàn)它們使得List(T)更加有用。
【編輯推薦】


















