Chapter 16 集合

Similar documents
PowerPoint Presentation

Visual Basic D 3D

Microsoft PowerPoint - VB14.ppt

untitled

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF

untitled

untitled

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

IsPostBack 2

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

untitled

投影片 1

(Microsoft Word - wes _\246p\246\363\250\317\245\316LED\277O\305\343\245\334\252\254\272A.doc)

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

untitled

05 CHAPTER Information.IsNumeric ( ) Information.IsDate ( ) True False Date Date True False Y Y Information.IsArray ( ) True False Y Information.IsErr

導讀 ASP.NET HTML ASP 第一篇 基礎篇第 1 章 認識 ASP.NET ASP.NET ASP.NET ASP.NET ASP.NET 第 2 章 認識 Visual Studio 20 開發環境 Visual Studio 20 Visual Studio 20 第二篇 C# 程式

多層次傳銷與獎金系統

Microsoft Office SharePoint Server MOSS Web SharePoint Web SharePoint 22 Web SharePoint Web Web SharePoint Web Web f Lists.asmx Web Web CAML f

ActiveX Control

untitled

Microsoft Word - 小心翼翼的二十一點N.doc

untitled

CHAPTER VC#

星星排列 _for loop Protected Sub Page_Load(ByVal sender As Object, ByVal e As Dim h As Integer = 7 'h 為變數 ' Dim i, j As Integer For i = 1 To h

untitled

untitled

untitled

27 :OPC 45 [4] (Automation Interface Standard), (Costom Interface Standard), OPC 2,,, VB Delphi OPC, OPC C++, OPC OPC OPC, [1] 1 OPC 1.1 OPC OPC(OLE f

ThreeDtunnel.doc

untitled

TC35短信发送程序设计

Microsoft Word - CX1000-HMI_程序开发_PLC通讯

投影片 1

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

VB控件教程大全

92 (When) (Where) (What) (Productivity) (Efficiency) () (2) (3) (4) (5) (6) (7) em-plant( SiMPLE++) Scheduling When Where Productivity Efficiency [5]

穨文件1

untitled

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc

Outline USB Application Requirements Variable Definition Communications Code for VB Code for Keil C Practice

VB程序设计教程

untitled

untitled

3 Driver do Microsoft Access (*.mdb) hisdata IFIX 1.4

2010年3月计算机等级考试四级网络工程师笔试

概述

(Microsoft Word - wes _\246p\246\363\250\317\245\316watchdog\250\276\244\356\265{\246\241\267\355\276\367.doc)

untitled

untitled

untitled

Microsoft Word - 第3章.doc

MVB-1001.DOC

2

ASP.NET MVC Visual Studio MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\M

1 1 Excel VBA 說明 ( ) (_) STEP4 Excel 2 STEP5 A1 1 B2 2 C3 3 STEP6 A1 STEP7 > > 1-11

Microsoft PowerPoint - Model Checking a Lazy Concurrent List-Based Set Algorithm.ppt [Compatibility Mode]

學 習 目 標 1. 了 解 有 計 畫 的 運 動 之 前, 實 施 身 體 檢 查 的 重 要 性 2. 了 解 熱 身 與 緩 和 運 動 可 以 預 防 運 動 傷 害 3. 了 解 包 紮 護 具 裝 備 與 場 地 器 材 的 維 護, 可 以 避 免 傷 害 發 生 4. 了 解 食

附 錄

untitled

untitled

Socket Socket TcpClient Socket.Connect TcpClient.Connect Socket.Send / Receive NetworkStream 6-5

CHAPTER 1

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii

Microsoft PowerPoint - Chapter5

epub 94-3

演算法導入、ソート、データ構造、ハッシュ

untitled

Visual C# 2010 與 UML 開發實戰 C# 第 5 章物件導向基礎 C# C# 第 6 章資料與變數 C# 第 7 章判斷式與迴圈 C# 第 8 章陣列與集合 C# 第 9 章偵錯與例外狀況處理 Visual Studio 2010 C# try...catch ix

untitled

計算機程式及實習 期末報告ppt製作 題目:南台黑心早餐店結帳系統

投稿類別:電子工程類

01

Microsoft Word 軟體設計第二部份範例試題_C++_ _1_.doc


游戏厅捕鱼技巧_天天酷跑游戏技巧 2048游戏技巧,游戏厅打鱼技巧_

<4D F736F F D DA5BFA6A1C476C1C92DBEC7ACECB8D5A8F728B57BB35D292E646F63>

Microsoft Word - 11.doc

新・解きながら学ぶJava

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

摘 要 在 這 忙 碌 的 社 會 中, 普 遍 人 們 運 動 時 間 其 實 並 不 充 裕, 體 力 越 來 越 差 的 情 況 下 還 隨 意 飲 食 導 致 身 體 健 康 越 來 越 差, 因 此 本 專 題 打 算 利 用 健 康 飲 食 的 方 式 改 善 這 些 人 的 體 質,

<ADB6ADB1C25EA8FAA6DB2D4D56432E706466>

目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016

2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 一 一 般 公 共 服 务 支 出 二

WWW PHP Comments Literals Identifiers Keywords Variables Constants Data Types Operators & Expressions 2

目 錄 壹 實 務 專 題 製 作 競 賽 ( 複 賽 ) 實 施 計 畫 1 貳 實 務 專 題 製 作 競 賽 ( 複 賽 ) 參 選 作 品 一 覽 表 13 參 評 審 委 員 名 單 23 肆 活 動 照 片 25 伍 實 務 專 題 製 作 競 賽 ( 複 賽 ) 優 良 作 品 名 錄

Microsoft Word - 2AF63內文.doc

Microsoft PowerPoint - 第14章.ppt

1 Internet [1]P Web Service Web Service Web XML HTTP URL 1..NET Framework.NET Framework Web Service HTTP 80.NET Framework 2

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

概述

X6-04_How_do_I_write_a_com_port_communicate_program_of_XPAC_tc

<4D F736F F D20AC4FBDBDA4FBB67DA96CAABA2DA743A67EAFC5AAA95FA7B9BD5A5F2E646F63>

PowerPoint 簡報

ex

Microsoft Word - 序.DOC

第一章.FIT)

大 綱 最 有 利 標 目 的 及 類 型 最 有 利 標 之 辦 理 方 式 準 用 最 有 利 標 取 最 有 利 標 精 神 最 有 利 標 之 類 型 及 其 相 關 規 定 適 用 最 有 利 標 準 用 最 有 利 標 及 取 最 有 利 標 精 神 作 業 程 序 及 實 務 分 析

Microsoft Word - 01.DOC

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>

Transcription:

Chapter 16 集合

20 ArrayList StringCollection 16 本章學習目標 : ArrayList ArrayList Array StringCollection 16-1 21 10-3-8 System.Array Clear Clear 16-1 Clear System.Array Microsoft System.Collection IList 542

20 Visual Basic 2008 最佳實務講座.NET Framework Insert Index key 使用索引值 index 16-1 16-2 21.NET Framework System.Collections.IList 屬性 / 方法 說明 Add Insert Remove RemoveAt Contains Boolean 543

20 IndexOf Clear 屬性 / 方法 說明 Integer -1 IList 16 System.Array ArrayList StringCollection IList 使用索引鍵 值的集合 Key Value 21 16-3.NET Framework System.Collections. IDictionary Key/Valye Key/Value Dictionary 方法與屬性 Add Clear Contains Remove IsFixedSize IsReadOnly 說明 Dictionary key/value Dictionary Dictionary key true Dictionary Dictionary Dictionary 544

20 Visual Basic 2008 最佳實務講座 方法與屬性 Keys Values Item 說明 Dictionary key Dictionary value key value HashTable HyberDictionary SortedList IDictionary 循序存取 Queue Stack 16-2 16-2.NET ArrayList StringCollection ArraryList Object StringCollection String 16-2-1 使用 ArrayList 21 ArrayList System.Collection 範例 16-1: 使用 Add 方法 ArrayList New 545

20 Dim memberlist As New ArrayList 16 ArrayList Add ArrayList ArrayList Add Object ArrayList memberlist.add(3) memberlist.add("coco") memberlist.add(date.now) DisplayList(" memberlist:", memberlist) 16-4 21 16-4 範例 16-2: 使用 Insert 方法 Insert Dim student1 As Student student1.id = 1 student1.firstname = " " student1.lastname = " " memberlist.insert(1, student1) DisplayList(" memberlist:", memberlist) 546

20 Visual Basic 2008 最佳實務講座 student1 1 16-1 16-2 memberlist 16-2 範例 16-3: 使用 Remove 方法 16-5 Remove memberlist memberlist.remove("coco") DisplayList(" memberlist:", memberlist) 16-1 16-2 16-3 CoCo 16-6 21 16-6 547

20 CoCo memberlist memberlist 16 21 範例 16-4: 使用 Container 方法 Container Dim removeitem As String removeitem = "CoCo" If memberlist.contains(removeitem) Then memberlist.remove("coco") DisplayList(" memberlist:", memberlist) Else DisplayList(removeItem & ". memberlist:", memberlist) End If Container CoCo memberlist 16-7 16-7 548

20 Visual Basic 2008 最佳實務講座 範例 16-5: 利用建構函式指定 ArrayList 的初始容量 ArrayList 16-1 ArrayList 0 Capacity Add Insert ArrayList ArrayList Add Insert Dim memberlist As New ArrayList(10) memberlist 10 Capacity 16-2 OutputTextBox.Text = "ArrayList :" & memberlist.capacity & vbcrlf Count Count OutputTextBox.Text &= "ArrayList :" & _ memberlist.count & vbcrlf TrimToSize 21 memberlist.trimtosize() OutputTextBox.Text &= " TrimToSize..." & vbcrlf OutputTextBox.Text &= "ArrayList :" & memberlist.capacity & vbcrlf TrimToSize Capacity Count 549

20 16 16-8 16-2-2 ArrayList 與 Array 差異 ArrayList Array 差異性 ArrayList Array 21 Redim Remove Insert ArrayList Array Array ArrayList ArrayList Array 範例 16-6:ArrayList 與 Array 16-5 ArrayList 550

20 Visual Basic 2008 最佳實務講座 Sub DisplayList(ByVal description As String, ByVal list As ArrayList) OutputTextBox.Text = description & vbcrlf For Each item As Object In list OutputTextBox.Text &= item.tostring() & vbcrlf Next End Sub namelist Dim namelist() As String = {"Anita", "CoCo", "Lisa"} DisplayArray(" namelist:", namelist) 16-2 Sub DisplayArray(ByVal description As String, ByVal list As Array) OutputTextBox.Text = description & vbcrlf For Each item As String In list OutputTextBox.Text &= item & vbcrlf Next End Sub 21 16-2-3 使用 StringCollection StringCollection String String System.Collections.Specialized StringCollection ArrayList StringCollection ArrayList ArrayList Object 551

範例 16-7: 使用 StringCollection StringCollection 16 21 20 Imports System.Collections.Specialized New Dim memberlist As New StringCollection ArrayList Add Insert Remove memberlist.add("coco") memberlist.add("john") memberlist.add("vivid") DisplayStringCol("memberList :", memberlist) memberlist String S u b D i s p l a y S t r i n g C o l(b y V a l d e s c r i p t i o n A s S t r i n g, B y V a l l i s t A s StringCollection) OutputTextBox.Text = description & vbcrlf For Each item As String In list OutputTextBox.Text &= item & vbcrlf Next End Sub 16-9 16-9 552

20 Visual Basic 2008 最佳實務講座 16-3.NET Framework Hashtable ListDictionary HybridDictionary SortedList NameValueCollection Hashtable Hashtable Hashtable 10 ListDictionary HybridDictionary 10 ListDictonary Hashtable Key SortedList SortedList Key SortedList NameValueCollection Key/Value String Key 16-3-1 使用 Dictionary Hashtable ListDictionary SortedList HybridDictionary 16-3 21 範例 16-8: 加入項目到 HybridDictionary HybridDictionary Imports System.Collections.Specialized HybridDictionary Dim dict As New HybridDictionary() 553

20 Add key value Object dict.add("mary", "Mary@email.com") 16 範例 16-9: 列舉 HybridDictionary 項目內容 For Each DictionaryEntry DictionaryEntry Key Vaule Object Key Value For Each entry As DictionaryEntry In dict OutputTextBox.Text &= entry.key & vbtab & entry.value & vbcrlf Next 範例 16-10: 移除 HybridDictionary 中的項目 Remove Key 21 dict.remove("lisa") 範例 16-11: 查詢 HybridDictionary 中的項目 Contains Key Key True False If dict.contains("lisa") Then OutputTextBox.Text = "Key Lisa:" & dict("lisa") Else OutputTextBox.Text = "Key Lisa " End If 16-3-2 使用 NameValueCollection NameValueCollection System.Collections.Specialized Key/Value String Key Vaule 554

20 Visual Basic 2008 最佳實務講座 16-3 16-10 NameValueCollection 範例 16-12: 加入項目到 NameValueCollection NameValueCollection Imports System.Collections.Specialized NameValueCollection Dim nv As New NameValueCollection Add Key Value String nv.add("products", "Visual Studio 2008") nv.add("books", "Visual Basic 2008 ") nv.add("books", "C# 2008 ") nv.add("books", "ASP.NET 3.5 ") nv.add("books", "ADO.NET 3.5 ") nv.add("authors", "Anita") nv.add("authors", "John") nv.add("authors", "Sophie") nv.add("authors", "Vivid") 21 範例 16-13: 列舉 NameValueCollection 項目內容 NameValueCollection AllKeys Key GetValues Key Key 555

20 16 For Each key As String In nvcol.allkeys Dim valuelist As String() = nvcol.getvalues(key) OutputTextBox.Text &= key + ":" + vbcrlf For Each value As String In valuelist OutputTextBox.Text &= vbtab + value + vbcrlf Next Next 16-12 21 16-11 NameValueCollection 範例 16-14: 移除 NameValueCollection 中的項目 Remove Key nv.remove("autohrs") 範例 16-: 查詢 NameValueCollection 中的項目 GetValues Key Key Dim books() As String = nv.getvalues("books") OutputTextBox.Text = " Books Value" + vbcrlf If books Is Nothing Then OutputTextBox.Text = " Books Value" Else 556

20 Visual Basic 2008 最佳實務講座 For Each book As String In books OutputTextBox.Text &= book + vbcrlf Next End If 16-4.NET Queue Stack 16-4-1 使用 Queue Queue First In First Out FIFO 16-4 Queue 屬性 / 方法說明 Enqueue Dequeue InvalidOperationException Dequeue Count Try Catch 21 Clear Peek Count InvalidOperationException Enqueue 16-12 Peek Peek Dequeue Peek Dequeue 557

16 20 21 16-12 Queue 範例 16-16: 加入項目到佇列 Queue System.Collection Visual Basic Queue Dim q As New Queue Enqueue q.enqueue("job:" + DateTime.Now.Ticks.ToString()) 範例 16-: 檢視佇列的第一個項目 Count Peek If q.count > 0 Then first = index - q.count + 1 OutputTextbox.Text &= _ String.Format(" : No.{0} -- {1}", _ first, q.peek) & vbcrlf Else OutputTextbox.Text &= "!!" & vbcrlf End If 558

20 Visual Basic 2008 最佳實務講座 範例 16-: 讀取並移除佇列的第一個項目 Count Dequeue If q.count > 0 Then first = index - q.count + 1 OutputTextbox.Text &= String.Format("No.{0} -- {1}", _ first, q.dequeue) & vbcrlf Else OutputTextbox.Text &= "!!" & vbcrlf End If 16-4 21 16-13 16-4-2 使用 Stack Stack Last In First Out LIFO Stack 559

20 屬性 / 方法 說明 16 Push Pop Peek InvalidOperationException Push 16-14 Peek Peek Pop Pop 21 16-14 Stack 範例 16-: 加入項目到堆疊 Stack System.Collection Visual Basic Stack Dim s As New Stack Push s.push("job:" & Now.Ticks.ToString()) 560

20 Visual Basic 2008 最佳實務講座 範例 16-20: 檢視堆疊中的項目 Count Peek If s.count > 0 Then OutputTextbox.Text &= _ String.Format(" No.{0} -- {1}", index, s.peek()) & vbcrlf Else OutputTextbox.Text &= "!!" & vbcrlf End If 範例 16-21: 讀取並移除堆疊中的項目 Count Pop If s.count > 0 Then OutputTextbox.Text &= String.Format("No.{0} -- {1}", _ index, s.pop()) & vbcrlf index -= 1 Else OutputTextbox.Text &= "!!" & vbcrlf End If 16-4 21 16-561

20 16-5 16 Controls 12-3 ListBox ComboBox Items 16-5-1 表單的 Controls 屬性 Controls Controls 範例 16-22: 檢查欄位是否都有輸入 21 For Each Me.Controls Dim errormsg As String = "" For Each ctl As Control In Me.Controls If TypeOf ctl Is TextBox Then If String.IsNullOrEmpty(ctl.Text.Trim) Then errormsg &= String.Format("[{0}] ", ctl.tag) & vbcrlf End If End If Next MessageBox.Show(errorMsg, " ", MessageBoxButtons.OK, _ MessageBoxIcon.Warning) 562

20 Visual Basic 2008 最佳實務講座 If TypeOf Is Then ctl TextBox TextBox String IsNullOrEmpty 16-8 16-5 16-16 16-5-2 清單控制項的 Items 屬性 ListBox ComboBox CheckedListBox Items Add Insert Remove Count 21 ListBox 的多選功能 ListBox SelectionMode None One MultiSimple MultiExteded MultiSimple MultiExtended ListBox SelectedItems SelectedIndeies 563

20 CheckedListBox 的核取功能 16 CheckedListBox CheckOnClick True CheckedItems CheckedIndices Practice 16-1 使用 ListBox 與 CheckedListBox > >> < << 21 16- 步驟 1: 開啟專案 \Labs_Starter\mod16\Ex16-01 Ex16-01.sln 步驟 2: 執行應用程式 F5 > >> 564

20 Visual Basic 2008 最佳實務講座 1. 2. 3. 步驟 3: 設定控制項的屬性 1. CheckedListBox CheckOnClick True 2. ListBox SelectionMode MultiExtended 步驟 4: 加入 < 按鈕的功能 < Click Add Remove Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles Button2.Click Dim item As Object = ListBox1.SelectedItem CheckedListBox1.Items.Add(item) ListBox1.Items.Remove(item) End Sub 步驟 5: 加入 << 按鈕的功能 16-5 21 Button4 Click << Insert Remove 565

20 16 21 Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles Button4.Click Dim lastindex As Integer = CheckedListBox1.Items.Count Dim index As Integer For index = ListBox1.SelectedItems.Count - 1 To 0 Step -1 Dim item As Object = ListBox1.SelectedItems(index) CheckedListBox1.Items.Insert(lastIndex, item) ListBox1.Items.Remove(item) Next End Sub CheckedListBox1.Items.Count ListBox1.SelectedItems.Count For Next ListBox1 步驟 6: 執行與測試 1. F 5 > >> 16-1 566

20 Visual Basic 2008 最佳實務講座 2. < << 16-5 16-2 ArrayList StringCollection Key/Value HashTable ListDictionary HybridDictionary Key/Value NameValueCollection Key/Value 21 567

20 16 21 1. A. Array Add Remove B. ArrayList Add Remove C. StringCollection Add Remove D. 2. String A. Array B. Collection C. ArrayList D. StringCollection 3. String A. Array B. Collection C. ArrayList D. StringCollection 4. A. For Each Next Controls B. Text C. TextBox If TypeOf Is Then D. For Each Next TextBoxes 568

20 Visual Basic 2008 最佳實務講座 5. A. ListBox SelectedItems B. ListBox CheckedItems C. CheckedListBox SelectedItems D. CheckedListBox CheckedItems 6. A. StringCollection B. HashTable C. SortedTable D. Queue 7. String Dim index As Short ' mydata(index) A. StringCollection B. HashTable C. SortedTable D. Queue 8. Queue A. Pop B. Push C. Enqueue D. Dequeue E. Remove 16-5 21 569

NOTE