F # - Danh sách có thể thay đổi
Các List<'T> lớp đại diện cho một danh sách các đối tượng được đánh mạnh có thể được truy cập bằng chỉ mục.
Nó là một đối tác có thể thay đổi của lớp Danh sách. Nó tương tự như mảng, vì nó có thể được truy cập bởi một chỉ mục, tuy nhiên, không giống như mảng, danh sách có thể được thay đổi kích thước. Do đó bạn không cần chỉ định kích thước trong khi khai báo.
Tạo danh sách có thể thay đổi
Danh sách được tạo bằng cách sử dụng newtừ khóa và gọi hàm tạo của danh sách. Ví dụ sau đây chứng minh điều này -
(* Creating a List *)
open System.Collections.Generic
let booksList = new List<string>()
booksList.Add("Gone with the Wind")
booksList.Add("Atlas Shrugged")
booksList.Add("Fountainhead")
booksList.Add("Thornbirds")
booksList.Add("Rebecca")
booksList.Add("Narnia")
booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])
Khi bạn biên dịch và thực thi chương trình, nó sẽ tạo ra kết quả sau:
0: Gone with the Wind
1: Atlas Shrugged
2: Fountainhead
3: Thornbirds
4: Rebecca
5: Narnia
Danh sách (T) Class
Lớp List (T) đại diện cho một danh sách các đối tượng được đánh máy mạnh có thể được truy cập bằng chỉ mục. Nó cung cấp các phương pháp để tìm kiếm, sắp xếp và thao tác với danh sách.
Các bảng sau cung cấp các thuộc tính, hàm tạo và phương thức của lớp Danh sách (T):
Tính chất
Bất động sản | Sự miêu tả |
---|---|
Sức chứa | Lấy hoặc đặt tổng số phần tử mà cấu trúc dữ liệu bên trong có thể giữ mà không cần thay đổi kích thước. |
Đếm | Nhận số phần tử có trong Danh sách (T). |
Mục | Nhận hoặc đặt phần tử ở chỉ mục được chỉ định. |
Người xây dựng
Constructor | Sự miêu tả |
---|---|
Danh sách (T) () | Khởi tạo một phiên bản mới của lớp List (T) trống và có dung lượng ban đầu mặc định. |
Danh sách (T) (IEnumerable (T)) | Khởi tạo một phiên bản mới của lớp List (T) có chứa các phần tử được sao chép từ tập hợp đã chỉ định và có đủ khả năng để chứa số phần tử được sao chép. |
Danh sách (T) (Int32) | Khởi tạo một phiên bản mới của lớp List (T) trống và có dung lượng ban đầu được chỉ định. |
phương pháp
Phương pháp | Sự miêu tả |
---|---|
Thêm vào | Thêm một đối tượng vào cuối Danh sách (T). |
AddRange | Thêm các phần tử của tập hợp đã chỉ định vào cuối Danh sách (T). |
AsReadOnly | Trả về trình bao bọc IList (T) chỉ đọc cho tập hợp hiện tại. |
Tìm kiếm nhị phân (T) | Tìm kiếm toàn bộ Danh sách đã sắp xếp (T) cho một phần tử bằng cách sử dụng trình so sánh mặc định và trả về chỉ mục dựa trên 0 của phần tử. |
Tìm kiếm nhị phân (T, IComparer (T)) | Tìm kiếm toàn bộ Danh sách đã sắp xếp (T) cho một phần tử bằng cách sử dụng trình so sánh được chỉ định và trả về chỉ mục dựa trên 0 của phần tử. |
Tìm kiếm nhị phân (Int32, Int32, T, IComparer (T)) | Tìm kiếm một loạt các phần tử trong Danh sách đã sắp xếp (T) cho một phần tử bằng cách sử dụng trình so sánh được chỉ định và trả về chỉ số dựa trên 0 của phần tử. |
Thông thoáng | Loại bỏ tất cả các phần tử khỏi Danh sách (T). |
Chứa đựng | Xác định xem một phần tử có trong Danh sách (T) hay không. |
ConvertAll (TOutput) | Chuyển đổi các phần tử trong Danh sách hiện tại (T) thành một kiểu khác và trả về một danh sách chứa các phần tử đã chuyển đổi. |
CopyTo (T []) | Sao chép toàn bộ Danh sách (T) sang mảng một chiều tương thích, bắt đầu từ đầu mảng đích. |
CopyTo (T [], Int32) | Sao chép toàn bộ Danh sách (T) vào một mảng một chiều tương thích, bắt đầu từ chỉ mục được chỉ định của mảng đích. |
CopyTo (Int32, T [], Int32, Int32) | Sao chép một loạt các phần tử từ Danh sách (T) sang một mảng một chiều tương thích, bắt đầu từ chỉ mục được chỉ định của mảng đích. |
Bằng (Đối tượng) | Xác định xem đối tượng được chỉ định có bằng đối tượng hiện tại hay không. (Được kế thừa từ Object.) |
Tồn tại | Xác định xem Danh sách (T) có chứa các phần tử phù hợp với các điều kiện được xác định bởi vị từ được chỉ định hay không. |
Hoàn thiện | Cho phép một đối tượng cố gắng giải phóng tài nguyên và thực hiện các hoạt động dọn dẹp khác trước khi nó được thu hồi bằng cách thu gom rác (Kế thừa từ Đối tượng). |
Tìm thấy | Tìm kiếm một phần tử phù hợp với các điều kiện được xác định bởi vị từ được chỉ định và trả về lần xuất hiện đầu tiên trong toàn bộ Danh sách (T). |
FindAll | Truy xuất tất cả các phần tử phù hợp với các điều kiện được xác định bởi vị từ được chỉ định. |
FindIndex (Vị từ (T)) | Tìm kiếm một phần tử phù hợp với các điều kiện được xác định bởi vị từ được chỉ định và trả về chỉ mục dựa trên 0 của lần xuất hiện đầu tiên trong toàn bộ Danh sách (T). |
FindIndex (Int32, Predicate (T)) | Tìm kiếm một phần tử phù hợp với các điều kiện được xác định bởi vị từ được chỉ định và trả về chỉ mục dựa trên 0 của lần xuất hiện đầu tiên trong phạm vi các phần tử trong Danh sách (T) kéo dài từ chỉ mục được chỉ định đến phần tử cuối cùng. |
FindIndex (Int32, Int32, Predicate (T)) | Tìm kiếm phần tử phù hợp với các điều kiện được xác định bởi vị từ được chỉ định và trả về chỉ số dựa trên 0 của lần xuất hiện đầu tiên trong phạm vi các phần tử trong Danh sách (T) bắt đầu từ chỉ mục được chỉ định và chứa số phần tử được chỉ định. |
FindLast | Tìm kiếm một phần tử phù hợp với các điều kiện được xác định bởi vị từ được chỉ định và trả về lần xuất hiện cuối cùng trong toàn bộ Danh sách (T). |
FindLastIndex (Vị từ (T)) | Tìm kiếm một phần tử phù hợp với các điều kiện được xác định bởi vị từ được chỉ định và trả về chỉ mục dựa trên 0 của lần xuất hiện cuối cùng trong toàn bộ Danh sách (T). |
FindLastIndex (Int32, Predicate (T)) | Tìm kiếm một phần tử phù hợp với các điều kiện được xác định bởi vị từ được chỉ định và trả về chỉ số dựa trên 0 của lần xuất hiện cuối cùng trong phạm vi các phần tử trong Danh sách (T) kéo dài từ phần tử đầu tiên đến chỉ mục được chỉ định. |
FindLastIndex (Int32, Int32, Predicate (T)) | Tìm kiếm một phần tử phù hợp với các điều kiện được xác định bởi vị từ được chỉ định và trả về chỉ số dựa trên 0 của lần xuất hiện cuối cùng trong phạm vi các phần tử trong Danh sách (T) chứa số phần tử được chỉ định và kết thúc ở chỉ mục được chỉ định. |
Cho mỗi | Thực hiện hành động được chỉ định trên từng phần tử của Danh sách (T). |
GetEnumerator | Trả về một điều tra viên lặp qua Danh sách (T). |
GetHashCode | Đóng vai trò là hàm băm mặc định. (Được kế thừa từ Object.) |
GetRange | Tạo một bản sao ngắn của một loạt các phần tử trong Danh sách nguồn (T). |
GetType | Rút ra loại của trường hợp hiện tại. (Được kế thừa từ Object.) |
IndexOf (T) | Tìm kiếm đối tượng được chỉ định và trả về chỉ mục dựa trên 0 của lần xuất hiện đầu tiên trong toàn bộ Danh sách (T). |
IndexOf (T, Int32) | Tìm kiếm đối tượng được chỉ định và trả về chỉ mục dựa trên 0 của lần xuất hiện đầu tiên trong phạm vi các phần tử trong Danh sách (T) kéo dài từ chỉ mục được chỉ định đến phần tử cuối cùng. |
IndexOf (T, Int32, Int32) | Tìm kiếm đối tượng được chỉ định và trả về chỉ số dựa trên 0 của lần xuất hiện đầu tiên trong phạm vi các phần tử trong Danh sách (T) bắt đầu từ chỉ mục được chỉ định và chứa số phần tử được chỉ định. |
Chèn | Chèn một phần tử vào Danh sách (T) tại chỉ mục được chỉ định. |
InsertRange | Chèn các phần tử của một tập hợp vào Danh sách (T) tại chỉ mục được chỉ định. |
LastIndexOf (T) | Tìm kiếm đối tượng được chỉ định và trả về chỉ mục dựa trên 0 của lần xuất hiện cuối cùng trong toàn bộ Danh sách (T). |
LastIndexOf (T, Int32) | Tìm kiếm đối tượng được chỉ định và trả về chỉ mục dựa trên 0 của lần xuất hiện cuối cùng trong phạm vi các phần tử trong Danh sách (T) kéo dài từ phần tử đầu tiên đến chỉ mục được chỉ định. |
LastIndexOf (T, Int32, Int32) | Tìm kiếm đối tượng được chỉ định và trả về chỉ số dựa trên 0 của lần xuất hiện cuối cùng trong phạm vi các phần tử trong Danh sách (T) chứa số phần tử được chỉ định và kết thúc ở chỉ mục đã chỉ định. |
MemberwiseClone | Tạo một bản sao nông của Đối tượng hiện tại. (Được kế thừa từ Object.) |
Tẩy | Loại bỏ sự xuất hiện đầu tiên của một đối tượng cụ thể khỏi Danh sách (T). |
Xóa tất cả | Loại bỏ tất cả các phần tử phù hợp với các điều kiện được xác định bởi vị từ được chỉ định. |
RemoveAt | Loại bỏ phần tử tại chỉ mục được chỉ định của Danh sách (T). |
RemoveRange | Xóa một loạt các phần tử khỏi Danh sách (T). |
Đảo ngược() | Đảo ngược thứ tự của các phần tử trong toàn bộ Danh sách (T). |
Đảo ngược (Int32, Int32) | Đảo ngược thứ tự của các phần tử trong phạm vi được chỉ định. |
Sắp xếp () | Sắp xếp các phần tử trong toàn bộ Danh sách (T) bằng trình so sánh mặc định. |
Sắp xếp (So sánh (T)) | Sắp xếp các phần tử trong toàn bộ Danh sách (T) bằng Hệ thống được chỉ định. So sánh (T). |
Sắp xếp (IComparer (T)) | Sắp xếp các phần tử trong toàn bộ Danh sách (T) bằng trình so sánh được chỉ định. |
Sắp xếp (Int32, Int32, IComparer (T)) | Sắp xếp các phần tử trong một loạt các phần tử trong Danh sách (T) bằng cách sử dụng trình so sánh được chỉ định. |
ToArray | Sao chép các phần tử của Danh sách (T) vào một mảng mới. |
ToString | Trả về một chuỗi đại diện cho các đối tượng hiện tại. (Được kế thừa từ Object.) |
TrimExcess | Đặt dung lượng thành số phần tử thực tế trong Danh sách (T), nếu số đó nhỏ hơn giá trị ngưỡng. |
TrueForAll | Xác định xem mọi phần tử trong Danh sách (T) có phù hợp với các điều kiện được xác định bởi vị từ được chỉ định hay không. |
Thí dụ
(* Creating a List *)
open System.Collections.Generic
let booksList = new List<string>()
booksList.Add("Gone with the Wind")
booksList.Add("Atlas Shrugged")
booksList.Add("Fountainhead")
booksList.Add("Thornbirds")
booksList.Add("Rebecca")
booksList.Add("Narnia")
printfn"Total %d books" booksList.Count
booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])
booksList.Insert(2, "Roots")
printfn("after inserting at index 2")
printfn"Total %d books" booksList.Count
booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])
booksList.RemoveAt(3)
printfn("after removing from index 3")
printfn"Total %d books" booksList.Count
booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])
Khi bạn biên dịch và thực thi chương trình, nó sẽ tạo ra kết quả sau:
Total 6 books
0: Gone with the Wind
1: Atlas Shrugged
2: Fountainhead
3: Thornbirds
4: Rebecca
5: Narnia
after inserting at index 2
Total 7 books
0: Gone with the Wind
1: Atlas Shrugged
2: Roots
3: Fountainhead
4: Thornbirds
5: Rebecca
6: Narnia
after removing from index 3
Total 6 books
0: Gone with the Wind
1: Atlas Shrugged
2: Roots
3: Thornbirds
4: Rebecca
5: Narnia