Vì vậy, tôi đã được poking xung quanh với C# một chút thời gian gần đây, và tất cả các bộ sưu tập chung có tôi một chút bối rối. Nói rằng tôi muốn đại diện cho một cấu trúc dữ liệu nơi đầu của một cây là một cặp giá trị khóa, và sau đó có một danh sách tùy chọn các cặp giá trị khóa bên dưới (nhưng không có nhiều cấp độ hơn các giá trị này). Điều này có phù hợp không?Triển khai tốt nhất cho cấu trúc dữ liệu cặp giá trị khóa?
public class TokenTree
{
public TokenTree()
{
/* I must admit to not fully understanding this,
* I got it from msdn. As far as I can tell, IDictionary is an
* interface, and Dictionary is the default implementation of
* that interface, right?
*/
SubPairs = new Dictionary<string, string>();
}
public string Key;
public string Value;
public IDictionary<string, string> SubPairs;
}
Nó chỉ thực sự là một shunt đơn giản để truyền dữ liệu.
Điều này làm việc tuyệt vời với tuyên bố "sử dụng" (tương tự như typedef cũ) để tiết kiệm một số cách gõ và làm cho mọi thứ rõ ràng hơn. Nếu bạn liên tục sử dụng e. g. cặp (chuỗi, chuỗi). –
KeyValuePair NAME_HERE = new KeyValuePair ("defaultkey", "defaultvalue"); –
HasanAboShally
Để mở rộng nhận xét của @AndreasReiff: 'using NameValuePair = System.Collections.Generic.KeyValuePair;' gần đầu mỗi tệp cần cấu trúc '(string, string)'. Mặc dù tôi thấy thuận tiện hơn khi tạo một 'class NameValuePair' trong không gian tên của tôi:' public class NameValuePair \t { \t \t KeyValuePair it; \t \t công NameValuePair (string name, chuỗi giá trị) \t \t { \t \t \t nó = new KeyValuePair (tên, giá trị); \t \t} \t \t chuỗi công khai Tên {get {return it.Key; }} \t \t chuỗi công khai Giá trị {get {return it.Value; }} \t} ' –
ToolmakerSteve