Phương thức từ điển C# To

Phuong Thuc Tu Dien C To



Hàm ToDictionary trong C# là một hàm mở rộng LINQ cho phép bạn chuyển đổi một bộ sưu tập dữ liệu thành một từ điển cung cấp một cách rõ ràng và thiết thực để ánh xạ các thực thể tới các khóa riêng biệt và các giá trị liên quan. Nó yêu cầu hai đối số, hai đại biểu hoặc biểu thức lambda, một để chọn khóa và một đối số bổ sung để chọn giá trị cho mọi đối tượng trong bộ sưu tập. Trong bài viết này, chúng tôi sẽ sử dụng một số ví dụ về mã C# để minh họa cách sử dụng hàm ToDictionary.

Cú pháp:

Chúng ta hãy chia nhỏ và hiểu từng thành phần được cung cấp theo cú pháp sau của hàm C# ToDictionary từng cái một:



đã ra lệnh = bộ sưu tập. Từ điển ( bộ chọn phím , bộ chọn phần tử ) ;
  • Từ khóa “var” được loại bỏ ở đây để xác định loại loại của từ điển “dict” kết quả. Trong hầu hết các trường hợp, đó là từ điển trong đó K là loại khóa và V là loại loại của giá trị từ điển.
  • Phần tử “bộ sưu tập” đại diện cho bộ sưu tập nguồn mà bạn muốn chuyển đổi thành từ điển “dict”. Nó có thể là bất kỳ lớp nào triển khai giao diện IEnumerable chẳng hạn như danh sách, mảng hoặc kết quả truy vấn.
  • Từ khóa “keySelector” là một biểu thức đại biểu hoặc lambda chỉ định cách trích xuất khóa từ mỗi mục trong bộ sưu tập. Nó lấy một phần tử từ bộ sưu tập làm đối số và trả về giá trị khóa cho mục đó. Khóa phải là duy nhất cho mỗi mục trong bộ sưu tập vì từ điển không thể có khóa trùng lặp.
  • Từ khóa “elementSelector” đề cập đến biểu thức đại biểu hoặc lambda chỉ định cách trích xuất giá trị từ mỗi mục trong bộ sưu tập. Nó cũng lấy một phần tử của bộ sưu tập làm đối số và mang lại giá trị cho phần tử đó.

Sau khi thực thi hàm ToDictionary, bạn sẽ có một đối tượng từ điển mới trong đó mỗi mục từ bộ sưu tập được biểu diễn dưới dạng một cặp khóa-giá trị.







Ví dụ 1:

Hãy bắt đầu lại hướng dẫn này bằng cách minh họa cách sử dụng hàm ToDictionary trong C# với sự trợ giúp của một ví dụ về mã. Chúng ta hãy đi qua nó từng bước một.



Mã bắt đầu với các không gian tên bắt buộc được nhập: System, System.Collections.Generic và System.Linq. Các không gian tên này cung cấp các lớp và phương thức mở rộng cần thiết để làm việc với các bộ sưu tập và LINQ. Lớp “Dummy” được định nghĩa có chứa phương thức “Main” của chương trình C# này.



Bên trong phương thức “Main”, một danh sách có tên “L” được tạo. Danh sách này chứa ba phần tử chuỗi đại diện cho tên của các loại nước hoa khác nhau mà người dùng lựa chọn. Phương thức ToDictionary được gọi trong danh sách “L”. Nó chuyển đổi danh sách thành một từ điển. Mỗi phần tử chuỗi trong danh sách đóng vai trò vừa là khóa vừa là giá trị trong từ điển kết quả.





Từ điển được tạo bằng so sánh khóa không phân biệt chữ hoa chữ thường bằng cách sử dụng tham số StringComparer.OrdinalIgnoreCase, tham số này chủ yếu được sử dụng để chỉ định so sánh không phân biệt chữ hoa chữ thường khi kiểm tra sự tồn tại của khóa. Câu lệnh “if” kiểm tra xem từ điển có chứa khóa “bomshell” hay không trong khi bỏ qua trường hợp của nó. Nếu tìm thấy khóa, đoạn mã trong phần “nếu” sẽ được xử lý. Bên trong khối “if”, câu lệnh Console.WriteLine(“Bombshell tồn tại”) được thực thi để in thông báo “Bombshell tồn tại” ra bảng điều khiển.

sử dụng hệ thống ;

sử dụng Hệ thống. Bộ sưu tập . Chung ;

sử dụng Hệ thống. Linq ;

lớp giả

{

tĩnh trống rỗng Chủ yếu ( )

{

Danh sách < sợi dây > L = danh sách mới < sợi dây > ( ) { 'Thuốc phiện đen' , 'Vỏ bom' , 'GucciFlora' } ;

là Nước hoa = L. Từ điển ( x => x , x => ĐÚNG VẬY , StringComparer. Thứ tựBỏ quaTrường hợp ) ;

nếu như ( Nước hoa. Chứa khóa ( 'vỏ bom' ) )

{

Bảng điều khiển. Viết dòng ( 'Vỏ bom tồn tại' ) ;

}

}

}

Vì từ điển được tạo bằng cách so sánh không phân biệt chữ hoa chữ thường nên khóa “bombshell” khớp với khóa “Bombshell” thực tế trong từ điển. Kết quả là thông báo “Bombshell tồn tại” được in trên bảng điều khiển như hiển thị trong hình ảnh đầu ra đính kèm sau:



Ví dụ 2:

Trong ví dụ về mã trước đó, chúng tôi đã trình bày cách chuyển đổi một bộ sưu tập đơn giản thành từ điển thông qua hàm ToDictionary. Bây giờ, chúng ta sẽ chuyển sang một ví dụ mã nâng cao nhỏ của C# để trình diễn cách sử dụng hàm C# ToDictionary. Hãy chia nhỏ từng dòng mã.

Đoạn mã minh họa này bắt đầu bằng cách đưa vào cùng các không gian tên bắt buộc: System, System.Collections.Generic và System.Linq. Các không gian tên này cung cấp các lớp và phương thức mở rộng cần thiết để làm việc với các bộ sưu tập và LINQ cho ví dụ mã này. Lớp 'Dummy' được xác định là điểm vào.

Bên trong phương thức “Main” của ngôn ngữ C#, một danh sách có tên “L” được hình thành. Danh sách này chứa ba đối tượng thuộc lớp “Dữ liệu” đại diện cho các sản phẩm mỹ phẩm khác nhau cùng với giá cả và nhãn hiệu của chúng. Mỗi đối tượng dữ liệu được khởi tạo bằng cú pháp khởi tạo đối tượng. Thuộc tính “Giá” và “Thương hiệu” của từng đối tượng được đặt bằng các giá trị cụ thể.

Đây là phương pháp ToDictionary. Nó được gọi ở đây trong danh sách “L”. Nó chuyển đổi danh sách thành một từ điển trong đó thuộc tính “Price” được sử dụng làm khóa và thuộc tính “Thương hiệu” được sử dụng làm giá trị. Từ điển kết quả được gán cho biến “Dic” như được đề cập trong đoạn mã được cung cấp sau đây. Vòng lặp 'foreach' bị loại bỏ để gọi các cặp khóa-giá trị trong từ điển 'Dic'.

Bên trong vòng lặp, khóa và giá trị của mỗi cặp được truy cập bằng cách sử dụng thuộc tính “Khóa” và “Giá trị” của cấu trúc KeyValuePair. Câu lệnh hàm Console.WriteLine in từng cặp khóa-giá trị ra bàn điều khiển. Đầu ra được định dạng bằng cách sử dụng phép nội suy chuỗi để hiển thị riêng thông tin về giá và thương hiệu.

Ở đây, lớp “Data” được định nghĩa bằng hai thuộc tính: “Price” (một số nguyên biểu thị giá của một sản phẩm mỹ phẩm) và “Thương hiệu” (một chuỗi đại diện cho tên thương hiệu của một sản phẩm).

sử dụng hệ thống ;

sử dụng Hệ thống. Bộ sưu tập . Chung ;

sử dụng Hệ thống. Linq ;

lớp giả

{

tĩnh trống rỗng Chủ yếu ( )

{

Danh sách < Dữ liệu > L = danh sách mới < Dữ liệu > ( )

{

dữ liệu mới { Giá = 13000 , Thương hiệu = 'Người đẹp Huda' } ,

dữ liệu mới { Giá = 15000 , Thương hiệu = 'Charlotte Telbury' } ,

dữ liệu mới { Giá = 11000 , Thương hiệu = 'Nars' }

} ;

Từ điển < int , sợi dây > Tháng mười hai = L. Từ điển ( P => P. Giá , P => P. Thương hiệu ) ;

cho mỗi ( var v trong Dic )

{

Bảng điều khiển. Viết dòng ( $ 'Giá: {v.Key}, Thương hiệu: {v.Value}' ) ;

}

}

}

dữ liệu lớp

{

công cộng int Giá { lấy ; bộ ; }

chuỗi công cộng { lấy ; bộ ; }

}

Khi mã được thực thi, nó sẽ tạo một danh sách các đối tượng dữ liệu, chuyển đổi danh sách đó thành một từ điển bằng phương thức ToDictionary, sau đó hiển thị các cặp khóa-giá trị của từ điển bằng vòng lặp “foreach”.

Đầu ra cho ví dụ mã này được cung cấp như sau. Nó hiển thị giá và nhãn hiệu của các sản phẩm mỹ phẩm được lưu trữ trong từ điển dựa trên các thuộc tính cụ thể, cung cấp một cách thuận tiện để sắp xếp và truy cập dữ liệu theo cặp khóa-giá trị. Đầu ra của mã trước đó hiển thị ba bản ghi cho từ điển:

Phần kết luận

Hướng dẫn C# này đã trình bày cách sử dụng phương pháp C# ToDictionary thông qua một số minh họa mã cơ bản và chính xác. Bằng cách cung cấp một cơ chế rõ ràng và mang tính biểu cảm để mô tả các cặp khóa-giá trị, phương thức ToDictionary giúp việc biến một bộ sưu tập thành một từ điển trở nên dễ dàng hơn. Nó là một tiện ích C# mạnh mẽ để thao tác và chuyển đổi dữ liệu.