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

VB.NET List實用技巧詳解

開發 后端
我們將會在這篇文章中通過幾個代碼示例來為大家詳細解讀VB.NET List的應用技巧及實現功能,希望能對又需要的朋友有所幫助。

VB.NET同所有編程語言一樣具有一樣的編程基礎框架。這對于一個剛剛接觸VB.NET語言而又有其他語言基礎的開發人員來說,是非常有用的。因為只用花很少的時間就可以快速的掌握這一功能強大的語言。今天我們就來詳細了解一下VB.NET List的相關知識。#t#

要使用VB.NET List,我們需要了解如何部署.NET框架所提供的多種方法。這也將是本文要介紹的內容。我已經編寫好了三個示例——使用ForEach, FindAll,和Sort——來闡述同樣列表類的工作原理。

***步是要創建一個同用列表。你可以從多種途徑獲取數據,但是最簡單的方法是添加。文本中,我們會編寫代碼以便為舉例中的集來分類。因此,下面我們就來講講創建集的代碼。

首先,我需要一個能代表集中的Bottle的對象。為此而編寫的代碼是完全符合標準的,而且事實上,VB.NET 2008 Express Intellisense會為你寫好大部分的代碼。以下是我的對象:

 

  1. Public Class Bottle "internal
    Properties"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對象來注明。我們會在相同集中的多類型中獲益。

下面我們將介紹ForEach, FindAll, 和Sort方法。

我們使用這些方法的時候,就會發現其中的樂趣了。首先,讓我們部署ForEach方法。微軟文件包含了其使用句法定義。

 

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

 

微軟進一步將委派行為定義為一種可以將對象傳遞的行為進行演示的一種方法。目前的VB.NET List要素是單獨傳送到Action(T)代表的。

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

 

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

編寫ForEach方法本身是很簡單的,只需要填寫代表的地址就可以了。

 

  1. Cabinet.ForEach
    (AddressOf displayBottle) 

 

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

 

  1. Dim instance As List 
    Dim match As Predicate(Of T)  
  2. Dim returnValue As List(Of T)  
  3. 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返回的是整個VB.NET List而不是調用列表中每個項目的代表代碼。這個VB.NET List)只包含匹配Predicate(T)的數據。對第二個VB.NET List的定義和操作也取決于我們編寫的代碼。重復一遍,我的代碼是為免冗繁而簡化了。

  1. Dim sublist As List(Of Bottle)   
  2. sublist = Cabinet.FindAll
    (AddressOf findBeer)  
  3. For Each result As Bottle   
  4. In sublist  
  5. Console.WriteLine(result.
    Brand & " - " & result.Name)  
  6. 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) 
    As IntegerReturn  
  2. x.Category.CompareTo
    (y.Category)  
  3. End Function  

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

 

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

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

責任編輯:曹凱 來源: 中國IT實驗室
相關推薦

2010-01-14 18:00:07

VB.NET串行化對象

2010-01-18 17:45:33

VB.NET線程訪問數

2009-10-12 15:44:26

VB.NET動態編碼技

2010-01-12 18:40:22

VB.NET Form

2009-12-21 15:50:39

2010-01-11 16:04:10

VB.NET使用wit

2009-01-03 09:34:30

ASP.NET.NET性能優化

2010-01-21 17:34:48

VB.NET Bool

2009-10-20 17:38:54

VB.NET Comp

2010-01-12 18:35:43

VB.NET Stru

2009-11-10 13:08:13

VB.NET編程技巧

2010-01-18 18:20:49

VB.NET使用API

2010-01-18 18:06:07

VB.NET多線程

2010-01-13 09:45:53

VB.NET Arra

2010-01-13 10:15:19

VB.NET Stri

2010-01-12 11:37:34

VB.NET讀取圖像

2010-01-08 14:56:18

VB.NET類定義

2010-01-12 18:05:38

VB.NET對象

2010-01-07 15:57:02

VB.NET ForEach

2010-01-11 10:08:47

VB.NET事件通道
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕亚洲欧美 | 97精品超碰一区二区三区 | av在线免费观看网站 | 久久91av| 一级国产精品一级国产精品片 | 91一区二区三区在线观看 | 日韩精品在线观看一区二区三区 | 亚洲一区综合 | 成人精品一区二区 | 午夜丰满寂寞少妇精品 | 特黄色一级毛片 | 成人av电影在线观看 | 青青99 | 天堂一区在线 | 久久91 | 日本免费一区二区三区四区 | 热99视频 | 91一区二区 | 成人精品鲁一区一区二区 | 日本在线小视频 | 先锋资源网 | 久久国产精品网站 | 巨大荫蒂视频欧美另类大 | 逼逼视频 | 亚洲精品九九 | 久久久久久久国产精品影院 | 黄色大片免费播放 | 午夜一区二区三区视频 | 久久成人精品视频 | se婷婷| yiren22 亚洲综合| 欧美成人高清 | 亚洲啊v在线 | 一级片网站视频 | 激情一区二区三区 | 一区二区在线不卡 | 黄色欧美大片 | 久久久久久久av麻豆果冻 | 日韩精品专区在线影院重磅 | 蜜桃视频在线观看免费视频网站www | 中文字幕一区二区三区乱码在线 |