Trong bài viết này chúng ta sẽ tìm hiểu về Dictionary trong C#. Dictionary được sử dụng để lưu trữ các cặp key/value không theo thứ tự bố trí cụ thể.

Bạn đang xem: Cách dùng dictionary trong c#

*


*

Mình sẽ reviews về các điểm lưu ý của Dictionary, cùng với sẽ là các thao tác làm việc với Dictionary vào C#.

1. Các đặc điểm của Dictionary

Dưới đó là một số điểm lưu ý của Dictionary:

Lưu trữ những cặp key/value.Nằm vào System.Collection.Generic namespace.Triển khai hình ảnh IDictionary.Các key nên là duy nhất với không được để trống.Value hoàn toàn có thể trùng lặp và hoàn toàn có thể là quý giá null.Các Value rất có thể được truy cập thông qua key của nó.Các phần tử được lưu trữ dưới dạng Key
Value
Pair .

2. Tạo nên Dictionary

Chúng ta có thể tạo một Dictionary bằng cách truyền vào key và value nên lưu trữ. Lấy một ví dụ dưới đấy là cách chế tạo một Dictionary và phương pháp thêm các cặp key/value mang lại nó.

Bài viết này được đăng trên


using System;using System.Collections.Generic;public class Program public static void Main() IDictionary number
Names = new Dictionary(); //sử dụng cách thức Add() đẻ thêm các thành phần cho Dictionarynumber
Names.Add(1,"One"); number
Names.Add(3,"Three");number
Names.Add(2,"Two");//sử dụng cách tiến hành foreach nhằm in các bộ phận ra màn hìnhforeach(Key
Value
Pair kvp in number
Names)Console.Write
Line("Key: 0, Value: 1", kvp.Key, kvp.Value); Console.Write
Line();//khai báo cùng khởi tạo cho key / value bởi bộ khởi tạovar cities = new Dictionary() "UK","London, Manchester, Birmingham","USA","Chicago, New York, Washington","India","Mumbai, New Delhi, Pune";//sử dụng thủ tục foreach để in các thành phần ra màn hìnhforeach(var kvp in cities)Console.Write
Line("Key: 0, Value: 1", kvp.Key, kvp.Value); Console.Write
Line("----------------------------------------");Console.Write
Line("Chương trình này được đăng tại Freetuts.net");
Trong lấy một ví dụ trên number
Names là một trong những Dictionary bởi vì vậy nó hoàn toàn có thể lưu trữ những key int cùng value string. Tương tự như vậy ta gồm cities là 1 trong Dictionary bởi vì vậy nó hoàn toàn có thể lưu trữ key với value ở dạng string.

Dictionary cần thiết lưu các key giống nhau hoặc bởi giá trị rỗng, trong những lúc đó value thì có thể.

Kết quả:

3. Truy cập các bộ phận trong Dictionary

Dictionary hoàn toàn có thể được truy hỏi cập bằng cách sử dụng indexer (trình chỉ mục) để chỉ đinh một key link với value.

Xem thêm: Chồng cũ diệp bảo ngọc

Ta có thể sử dụng cách thức Element
At() để mang Key
Value
Pair từ bỏ chỉ mục được chỉ định.

Ví dụ:


using System;using System.Linq;using System.Collections.Generic;public class Program{ public static void Main() { //khai báo và khởi tạo nên một Dictionary var cities = new Dictionary() "UK", "London, Manchester, Birmingham", "USA", "Chicago, New York, Washington", "India", "Mumbai, New Delhi, Pune" ;Console.Write
Line("---Các thành phần trong Dictionary---");//sử dụng cách thức Element
At() để truy cập vào Dictionaryfor (int i = 0; i
Kết quả:

4. Update Dictionary

Cập nhật value của một key bằng cách chỉ định một key vào indexer (trình chỉ mục). Trước khi cập nhật ta yêu cầu kiểm tra key tất cả tồn tại hay không bằng phương thức Contains
Key().


using System;using System.Linq;using System.Collections.Generic;public class Program public static void Main() //khai báo với khởi tạo nên một Dictionaryvar cities = new Dictionary() "UK", "London, Manchester, Birmingham", "USA", "Chicago, New York, Washington", "India", "Mumbai, New Delhi, Pune" ; Console.Write
Line(" -----------------Dictionary ban đầu----------------------"); foreach(var kvp in cities)Console.Write
Line("Key: 0, Value: 1", kvp.Key, kvp.Value); cities<"UK"> = "Liverpool, Bristol";cities<"USA"> = "Los Angeles, Boston";if(cities.Contains
Key("France")) cities<"France"> = "Paris";Console.Write
Line(" -----------------Dictionary sau khi cập nhật----------------------");foreach(var kvp in cities) Console.Write
Line("Key: 0, Value: 1", kvp.Key, kvp.Value); Console.Write
Line("----------------------------------------"); Console.Write
Line("Chương trình này được đăng trên Freetuts.net");
Kết quả:

5. Xóa các bộ phận trong Dictionary

Để xóa những cặp key/value trong Dictionary ta gồm hai phương thức. Cách thức Remove() nhằm xóa một cặp key/value và thủ tục Clear() nhằm xóa tất cả các cặp key/value.


using System;using System.Collections.Generic;public class Program public static void Main() var cities = new Dictionary() "UK", "London, Manchester, Birmingham", "USA", "Chicago, New York, Washington", "India", "Mumbai, New Delhi, Pune"; foreach(var kvp in cities) Console.Write
Line("Key: 0, Value: 1", kvp.Key, kvp.Value); //đếm số bộ phận lần 1Console.Write
Line("
Tổng các phần tử: 0", cities.Count);//sử dụng phương thức Remove() để xóa một cặp key/valuecities.Remove("UK"); //sử dụng cách làm Contains
Key() để bình chọn xem key "France" có tồn tại hay không //nếu tất cả thì xóa, nếu như không thì không xóaif(cities.Contains
Key("France")) cities.Remove("France");//đếm số thành phần lần 2Console.Write
Line("Tổng các thành phần sau lúc xóa một phần tử: 0", cities.Count); //sử dụng cách tiến hành Clear() để xóa toàn bộ các phần tửcities.Clear(); //deletes all elements//đếm lần 3Console.Write
Line("Tổng các phần tử sau khi xóa hết: 0", cities.Count); Console.Write
Line("----------------------------------------"); Console.Write
Line("Chương trình này được đăng trên Freetuts.net");
Kết quả:

6. Kết luận

Như vậy là bọn họ đã tìm hiểu xong xuôi về Dictionary là gì? các điểm sáng của nó, thuộc với sẽ là các thao tác làm việc với Dictionary trong C#. Các bạn hãy rèn luyện thật nhiều để áp dụng nó thành thục nhé !!!

Bài viết hôm nay, bản thân sẽ ra mắt với chúng ta một kiểu tài liệu collection mới về Dictionary Collection C#. 

phía dẫn áp dụng Dictionary Collection trong C# 

Dictionary là dữ liệu kiểu collection tất cả chứa cặp Key/Value, y hệt như Hash
Table, chỉ khác dạng hình khai báo mang đến Key với Value. Tài liệu mà Dictionary lưu trữ là ngẫu nhiên đối tượng nào. Key hoặc Value rất có thể chứa các kiểu dữ liệu như int,string,.. , mảng array, thứ hạng liệt kê, hoặc thậm chí là thứ hạng struct.

*

Cú pháp khai báo:

Dictionary new
Dict = new Dictionary();Để thêm 1 cặp quý hiếm vào Dictionay ta thực hiện phương thức Add()

new
Dict.Add(1, "Chuỗi sản phẩm công nghệ nhất"); // Chuỗi trang bị tư tất cả khóa key là 1new
Dict.Add(2, "Chuỗi vật dụng hai");new
Dict.Add(3, "Chuỗi máy ba");new
Dict.Add(100, "Chuỗi sản phẩm công nghệ tư"); // Chuỗi lắp thêm tư có khóa key là 100Để lấy dữ liệu ra cho bài toán hiển thị, cú pháp giống như như khi làm việc với mảng, ráng vào chính là khóa key của Dictionary:

Console.Write
Line(new
Dict<2>);Một ví dụ khác:

Dictionary color
Strings = new Dictionary();color
Strings.Add(Color.Black, Color.Black.To
String());color
Strings.Add(Color.Blue, Color.Blue.To
String());color
Strings.Add(Color.Red, Color.Red.To
String());foreach (Key
Value
Pair color in color
Strings) Console.Write
Line(color.Key.Get
Brightness().To
String());//Outputs: 0 0.5 0.5* Một số thao tác thao tác làm việc với Dictionary:- xào luộc Một trường đoản cú điển Dictionay sẵn bao gồm sang một Dictionary new (là copy)

Dictionary copy = new Dictionary(new
Dict);Ví dụ:

using System;using System.Collections.Generic;class Program static void Main() // // Create và initialize Dictionary. // Dictionary dictionary = new Dictionary(); dictionary.Add("cat", 1); dictionary.Add("dog", 3); dictionary.Add("iguana", 5); // // Copy the Dictionary to lớn a second object. // Dictionary copy = new Dictionary(dictionary); // // Change the first Dictionary. It won't change the copy. // dictionary.Add("fish", 4); // // Display the first Dictionary. // Console.Write
Line("--- Dictionary 1 ---"); foreach (var pair in dictionary) Console.Write
Line(pair); // // Display the second Dictionary. // Console.Write
Line("--- Dictionary 2 ---"); foreach (var pair in copy) Console.Write
Line(pair); * Kết quả

--- Dictionary 1 ------ Dictionary 2 ---* vấn đề sửa chữa, thêm sút Dictionary 1 ko làm ảnh hưởng đến Dictionary 2 sau khoản thời gian đã sao chép.- cầm còn trường hợp nhưng ta muốn coppy một Dict 1 vẫn sẵn chứa tài liệu sang một Dict 2 khác cũng đã tồn tại dữ liệu rồi thì sao.Nếu làm giống như ví dụ trên thì cặp dữ liệu sẵn gồm trong Dict 2 sẽ ảnh hưởng xóa hết trước lúc được copy
Để làm cho được câu hỏi này thì các bạn phải thông qua kiểu struct Key
Value
Pair
Ví dụ : mang sử bạn có nhu cầu sao chép toàn bộ dữ liệu đang sẵn đựng trong Dict2 thanh lịch Dict1 (Dict đang dần chứa tài liệu của nó, xem xét là Dict1 cùng Dict2 cùng có cặp KEY/VALUE là tương tự nhau ở chỗ này KEY lưu tài liệu kiểu string, VALUE lưu kiểu Hoc
Phan
Dto).

foreach (Key
Value
Pair công trình in Dict2)// khám nghiệm xem Dict1 bao gồm sẵn cất cặp dữ liệu có vào Dict2 giỏi không;// câu hỏi làm này né xung bỗng dưng dữ liệu,// vày Dictionary chỉ được phép tồn tại độc nhất một cặp Key/Value;if (List
Hoc
Phan.Contains
Key(item.Key)) continue;// quăng quật qua các bước phía sau lệnh này và liên tục vòng lặp foreach;// else// triển khai thêm dữ liệu vào Dict1;Dict1.Add(item.Key, item.Value);HAVE FUN :)