• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

[Net] Using Class List Replace Dynamic Array Into VB.Net

Các bài viết hướng dẫn về Visual Basic .NET và C#

Điều hành viên: tungcan5diop, QUANITGROBEST

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

[Net] Using Class List Replace Dynamic Array Into VB.Net

Gửi bàigửi bởi anhtuyenbk » T.Tư 30/04/2008 6:05 pm

Tên bài viết: Sử dụng Class List thay thế cho Dynamic Array trong VB.Net
Tác giả: Nguyễn Anh Tuyên
Cấp độ bài viết: Nâng cao
Tóm tắt: Sử dụng Class List thay thế cho Dynamic Array trong VB.Net


Sử dụng Class List thay thế cho Dynamic Array trong VB.Net

Hầu hết các bạn đều đã rất quen thuộc với Array, cao hơn là Dynamic Array nhưng thực tế có rất nhiều việc thì ngay cả Dynamic Array cũng ko đáp ứng được, cho dù được thì cũng hết sức khó khăn.
Có lẽ BillGate cũng nghĩ như vậy nên mới tạo ra lớp List để chúng ta có thể làm việc dễ dàng hơn. Bài này sẽ cho các bạn thấy được những điểm mạnh của List so với Dynamic Array.

1. Namespace để sử dụng List
Class List nằm trong namespace System.Collections.Generic nhưng trong VB.Net mặc định đã imports Namespace này rồi nên ta cũng ko cần imports lại.

2. Sử dụng Class List

2.1 Các kiểu dữ liệu mà class list hỗ trợ
Class List hỗ trợ rất nhiều kiểu dữ liệu như String, Integer.... và của kiểu cấu trúc Structure.
Khai báo một thể hiện của Class List kiểu String như sau:

Mã: Chọn hết

  1. Dim lstData As New List(Of String)

2.2 Add từng phần tử đơn vào List.

Mã: Chọn hết

  1. lstData.Add("a")
  2.         lstData.Add("b")
  3.         lstData.Add("c")
  4.         lstData.Add("d")

Như các bạn có thể thấy chúng ta ko cần phải lo lắng về việc chỉ định kích thước mảng như Dynamic Array nữa vì List đa lo điều đó cho chúng ta :))
2.3 Add một mảng các phần từ vào List

Mã: Chọn hết

  1. 'Ví dụ ta có mảng string sau
  2.         Dim ArrayData() As String = {"a", "b", "c", "d"}
  3.         'Add mảng vào List
  4.         lstData.AddRange(ArrayData)

2.4 Xuất các giá trị trong List vào một mảng
Trong list lưu rất nhiều giá trị, giờ ta muốn xuất các giá trị trong đó vào một mảng. Ta dùng Method ToArray()

Mã: Chọn hết

  1. Dim ArrayResult() As String
  2.         ArrayResult = lstData.ToArray()

2.5 Kết hợp nhiều mảng thành một mảng duy nhất
Ví dụ ta có 3 mảng String riêng rẽ sau: ArrayA, ArrayB, ArrayC
Bây giờ ta muốn kết hợp 3 mảng này thành một mảng duy nhất
- Bước 1 : Add 3 mảng này vào List

Mã: Chọn hết

  1. 'Add 3 mảng vào List
  2.         lstData.AddRange(ArrayA)
  3.         lstData.AddRange(ArrayB)
  4.         lstData.AddRange(ArrayC)

- Bước 2 : Xuất kết quả kết hợp vào một mảng

Mã: Chọn hết

  1.        ' Xuất kết quả kết hợp vào một mảng
  2.         Dim ArrayResult() As String
  3.         ArrayResult = lstData.ToArray()

Vậy là ta đã kết hợp được dữ liệu của 3 mảng vào một mảng duy nhất quá hay phải ko.
2.6 Tổng số phần tử trong List
Để biết trong List có bao nhiêu phần tử ta dùng

Mã: Chọn hết

  1. Dim Total As Integer = lstData.Count

2.7 Xóa hết các phần tử trong List

Mã: Chọn hết

  1. lstData.Clear()

2.8 Kiểm tra xem trong List có tồn tại phần từ này chưa
Ví dụ : ta muốn kiểm tra trong List có chuôi nào là “abc” không ta dùng

Mã: Chọn hết

  1. lstData.Contains("abc")

Kết quả trả về là một giá trị kiểu Boolean.
True là có và False là ko.
Sửa lần cuối bởi anhtuyenbk vào ngày T.Tư 30/04/2008 10:43 pm với 1 lần sửa.


Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

Re: [Net] Using Class List Replace Dynamic Array Into VB.Net

Gửi bàigửi bởi anhtuyenbk » T.Tư 30/04/2008 10:42 pm

2.9 Truy xuất giá trị của một item trong List
Để truy xuất giá trị của phần tử thứ 5 trong List ta dùng

Mã: Chọn hết

  1. Dim s As String = lstData(4)

2.10 Tìm vị trí (chỉ số Index) của một item trong List
Ví dụ bạn cần tìm vị trí của item có giá trị là “abc” trong List. Ta làm như sau

Mã: Chọn hết

  1. Dim i As Integer = lstData.IndexOf("abc")

Có thể các bạn nghĩ rằng liệu cái này có thật sự cần thiết ko? Sau đây mình sẽ ví dụ cho các bạn một trường hợp sử dụng tính năng này
Ví dụ bạn có 2 List

Mã: Chọn hết

  1. Dim lstKey As New List(Of String)
  2.         Dim lstValue As New List(Of String)

lstKey chứa các giá trị: a,b,c,d,e....
lstValue chứa các giá trị : 2,4,6,8,10...
Các bạn có thể thấy rằng a tương ứng với 2, b tương ứng với 4 ....và vị trí của chúng tương ứng nhau a và 2 đều có index là 0, b và 4 có index là 1...Bây giờ chúng ta tự hỏi liệu có cách nào chỉ cần nhập vào giá trị Key thì sẽ suy ra được giá trị của Value và ngược lại.
List sẽ giúp các bạn làm điều đó thật dễ dàng.

Mã: Chọn hết

  1. 'Lấy giá trị value thông qua Key
  2.         Dim value As String = lstValue(lstKey.IndexOf("Giá trị Key"))
  3.         'Lấy giá trị key thông qua Value
  4.         Dim key As String = lstKey(lstValue.IndexOf("Giá trị Value"))

Hay quá phải ko nào.
2.11 Remove item trong List
Nếu các bạn dùng Dynamic Array thì làm điều này khá là khó khăn nhưng với List thì nó chỉ là chuyện nhỏ.
2.11a Remove item thông quá giá trị của nó
Xóa item có giá trị là "abc"

Mã: Chọn hết

  1. lstData.Remove("abc")

2.11b Remove item dựa vào vị trị của nó
Xóa item thứ 4 trong list

Mã: Chọn hết

  1. lstData.RemoveAt(3)

2.11c Remove tất cả item trong List

Mã: Chọn hết

  1. lstData.Clear()

2.12 Sắp xếp các item ở trong List
Đây là một hàm hết sức đơn giản, nó có nhiệm vụ sắp xếp các item trong List theo thứ tự tăng dần

Mã: Chọn hết

  1. lstData.Sort()
Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang

bdkhanh
Bài viết: 5
Ngày tham gia: T.Tư 22/05/2013 10:11 am
Has thanked: 2 time

Re: [Net] Using Class List Replace Dynamic Array Into VB.Net

Gửi bàigửi bởi bdkhanh » T.Bảy 29/03/2014 4:49 pm

thanks


Quay về “[.NET] Bài viết hướng dẫn”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.0 khách