Tôi muốn tạo ra một từ điển của các loại sau đây,Tạo ba cấp độ từ điển lồng nhau trong C#
var data = new Dictionary<string, Dictionary<string, Dictionary<string, int>>>();
khi tôi cố gắng thêm giá trị vào từ điển theo cách sau, tôi nhận được một ngoại lệ KeyNotFound.
data[key1][key2][key3]= 3;
Tôi đang làm gì sai ở đây? Tôi giả định nếu một khóa không được tìm thấy trong một từ điển, nó sẽ tự động được thêm vào nó.
nếu không Có cách nào để thêm khóa vào thời gian chạy không?
Tôi hy vọng sản lượng của loại hình sau:
[male,[animal,[legs,4]
[eyes,2]]
[human,[hands,2]
[ears,2]]
[female,[animal,[nose,1]
[eyes,2]]
[bird,[wings,2]
[legs,2]]
Mặc dù không có lý do kỹ thuật do tại sao bạn can'd làm điều này. Tôi rất khuyên bạn nên chống lại việc giữ một cấu trúc dữ liệu như thế này trong bất cứ điều gì bạn phải duy trì. Chia nhỏ những gì bạn đang cố gắng để đại diện cho các lớp học và điều này sẽ dễ dàng hơn để duy trì. Tôi hiểu điều này có vẻ dễ dàng nhưng bạn không có ý nghĩa ngữ nghĩa như những gì mỗi khóa và giá trị đại diện và điều đó sẽ khiến bạn đau đầu. –