Tất cả những gì tôi muốn là từ điển cho tôi biết khóa nào không thể tìm thấy, thay vì chỉ nói The given key was not present in the dictionary
."Từ điển Verbose" trong C#, 'ghi đè mới' này [] hoặc thực hiện IDictionary
Tôi đã xem xét ngắn gọn việc thực hiện một lớp con với override new this[TKey key]
, nhưng cảm thấy hơi khó hiểu, vì vậy tôi đã thực hiện giao diện IDictionary và chuyển mọi thứ qua trực tiếp từ điển bên trong. indexer:
public TValue this[TKey key]
{
get
{
ThrowIfKeyNotFound(key);
return _dic[key];
}
set
{
ThrowIfKeyNotFound(key);
_dic[key] = value;
}
}
private void ThrowIfKeyNotFound(TKey key)
{
if(!_dic.ContainsKey(key))
throw new ArgumentOutOfRangeException("Can't find key [" + key + "] in dictionary");
}
Đây có phải là cách phù hợp/duy nhất không? Liệu sự mới mẻ này có thực sự tồi tệ không?
Tôi rất vui vì người dùng # 1 và # 2 nằm ở bên phải hành tinh :) – Benjol