新聞中心
VB.NET同所有編程語(yǔ)言一樣具有一樣的編程基礎(chǔ)框架。這對(duì)于一個(gè)剛剛接觸VB.NET語(yǔ)言而又有其他語(yǔ)言基礎(chǔ)的開(kāi)發(fā)人員來(lái)說(shuō),是非常有用的。因?yàn)橹挥没ê苌俚臅r(shí)間就可以快速的掌握這一功能強(qiáng)大的語(yǔ)言。今天我們就來(lái)詳細(xì)了解一下VB.NET List的相關(guān)知識(shí)。#t#

創(chuàng)新互聯(lián)公司始終堅(jiān)持【策劃先行,效果至上】的經(jīng)營(yíng)理念,通過(guò)多達(dá)十年累計(jì)超上千家客戶(hù)的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的全網(wǎng)推廣解決方案,現(xiàn)已廣泛運(yùn)用于各行各業(yè)的客戶(hù),其中包括:成都護(hù)欄打樁機(jī)等企業(yè),備受客戶(hù)贊譽(yù)。
要使用VB.NET List,我們需要了解如何部署.NET框架所提供的多種方法。這也將是本文要介紹的內(nèi)容。我已經(jīng)編寫(xiě)好了三個(gè)示例——使用ForEach, FindAll,和Sort——來(lái)闡述同樣列表類(lèi)的工作原理。
***步是要?jiǎng)?chuàng)建一個(gè)同用列表。你可以從多種途徑獲取數(shù)據(jù),但是最簡(jiǎn)單的方法是添加。文本中,我們會(huì)編寫(xiě)代碼以便為舉例中的集來(lái)分類(lèi)。因此,下面我們就來(lái)講講創(chuàng)建集的代碼。
首先,我需要一個(gè)能代表集中的Bottle的對(duì)象。為此而編寫(xiě)的代碼是完全符合標(biāo)準(zhǔn)的,而且事實(shí)上,VB.NET 2008 Express Intellisense會(huì)為你寫(xiě)好大部分的代碼。以下是我的對(duì)象:
- Public Class Bottle "internal
Properties"Public Property
Brand() As String- Public Property Name()
As String- Public Property Category()
As String- Public Property Size()
As Decimal- Public Sub New( _
- End Sub
- End Class
為了創(chuàng)建集,我需要添加項(xiàng)目:
- Dim Cabinet As List(Of Bottle) =
_ "New List(Of Bottle)Cabinet.
Add(New Bottle( _- "Castle Creek", _
- "Uintah Blanc", _
- "Wine", 750))
- Cabinet.Add(New Bottle( _
- "Zion Canyon Brewing Company", _
- "Springdale Amber Ale", _
- "Beer", 355))
- Cabinet.Add(New Bottle( _
- "Spanish Valley Vineyards", _
- "Syrah", _
- "Wine", 750))
- Cabinet.Add(New Bottle( _
- "Wasatch Beers", _
- "Polygamy Porter", _
- "Beer", 355))Cabinet.
Add(New Bottle( _- "Squatters Beer", _
- "Provo Girl Pilsner", _
- "Beer", 355))
所有的這些都是VB.NET1.0中的標(biāo)準(zhǔn)代碼。但是,要通過(guò)定義我們自己的Bottle對(duì)象來(lái)注明。我們會(huì)在相同集中的多類(lèi)型中獲益。
下面我們將介紹ForEach, FindAll, 和Sort方法。
我們使用這些方法的時(shí)候,就會(huì)發(fā)現(xiàn)其中的樂(lè)趣了。首先,讓我們部署ForEach方法。微軟文件包含了其使用句法定義。
- Dim instance As List
Dim action As Action(Of T)
instance.ForEach(action)
微軟進(jìn)一步將委派行為定義為一種可以將對(duì)象傳遞的行為進(jìn)行演示的一種方法。目前的VB.NET List要素是單獨(dú)傳送到Action(T)代表的。
***件要做的事就是需要編寫(xiě)被委派方法的代碼。對(duì)這一關(guān)鍵點(diǎn)存在誤區(qū)是大部分人對(duì)于VB.NET感到困惑的原因。該項(xiàng)功能或子程序是所有用于Of類(lèi)型對(duì)象的自定義編碼所完成的場(chǎng)所。當(dāng)我們能夠正確使用這一功能時(shí),過(guò)程就很簡(jiǎn)單。在我們的舉例中,對(duì)它的使用很簡(jiǎn)單。Bottle的整個(gè)示例都被傳送了,且子程序會(huì)從中抽選出任何需要的數(shù)據(jù)。
- Sub displayBottle
(ByVal b As Bottle)- Console.WriteLine
(b.Brand & " - " & b.Name)- End Sub
編寫(xiě)ForEach方法本身是很簡(jiǎn)單的,只需要填寫(xiě)代表的地址就可以了。
- Cabinet.ForEach
(AddressOf displayBottle)
FindAll稍微有些復(fù)雜。微軟關(guān)于FindAll的說(shuō)明如下:
- Dim instance As List
Dim match As Predicate(Of T)- Dim returnValue As List(Of T)
- returnValue = instance.
FindAll(match)
現(xiàn)在,在我們的句法中出現(xiàn)了不同的要素,Predicate(T)。據(jù)微軟稱(chēng),這將代表定義了一套標(biāo)準(zhǔn)以及能確定指定對(duì)象是否符合這些標(biāo)準(zhǔn)的方法。換句話(huà)說(shuō),我們可以創(chuàng)建任何能在列表中找尋數(shù)據(jù)的代碼。我編寫(xiě)的Predicate(Of T)可以對(duì)Beer種類(lèi)進(jìn)行搜尋:
- Function findBeer(ByVal
b As Bottle)
_ As BooleanIf
(b.Category = "Beer") Then- Return True
- Else
- Return FalseEnd IfEnd Function
FindAll返回的是整個(gè)VB.NET List而不是調(diào)用列表中每個(gè)項(xiàng)目的代表代碼。這個(gè)VB.NET List)只包含匹配Predicate(T)的數(shù)據(jù)。對(duì)第二個(gè)VB.NET List的定義和操作也取決于我們編寫(xiě)的代碼。重復(fù)一遍,我的代碼是為免冗繁而簡(jiǎn)化了。
- Dim sublist As List(Of Bottle)
- sublist = Cabinet.FindAll
(AddressOf findBeer)- For Each result As Bottle
- In sublist
- Console.WriteLine(result.
Brand & " - " & result.Name)- Next
本文探討的***一個(gè)方法是Sort。微軟使用了一些你或許并不熟悉的術(shù)語(yǔ)對(duì)其進(jìn)行解釋。其實(shí)有四個(gè)不同的Sort方法負(fù)載:
1. Sort()
2. Sort(Icomparer(T)
3. Sort(Comparison(T)
4. Sort(Int32,Int32,Icomparer(T)
這讓我們能夠用.NET框架中定義的Sort方法編寫(xiě)自己的代碼或者只是通過(guò)使用起始位置和計(jì)數(shù)參數(shù)來(lái)收集集合的一部分。
在這個(gè)例子中,我為自己的比較器編寫(xiě)了另一個(gè)代表。由于我希望通過(guò)我的分類(lèi)方式來(lái)分類(lèi),于是就只是抽去了傳所送的Bottle對(duì)象中每個(gè)例子的值。
- Private Shared Function
sortCabinet( _ ByVal x As
Bottle, ByVal y As Bottle)
As IntegerReturn- x.Category.CompareTo
(y.Category)- End Function
Sort方法實(shí)際上對(duì)原始VB.NET List進(jìn)行了重新排列。所以這就是該執(zhí)行該方法后發(fā)生的一個(gè)過(guò)程。
- Cabinet.Sort(AddressOf
sortCabinet)- For Each result As Bottle
- In CabinetConsole.WriteLine
(result.Brand & " - "
& result.Name)- Next
這些方法被選擇用來(lái)闡述VB.NET List中編寫(xiě)框架方法代碼的主要方式。你會(huì)發(fā)現(xiàn)它們使得VB.NET List更加有用。
當(dāng)前文章:VB.NETList實(shí)用技巧詳解
標(biāo)題路徑:http://m.5511xx.com/article/djshegi.html


咨詢(xún)
建站咨詢(xún)
