[英]Adding is not Working in Generic Dictionary in C#
我有一本通用詞典
class GenericDictionary<TKey, TValue> : Dictionary<TKey, TValue>
{
Dictionary<TKey, TValue> dictionary = new Dictionary<TKey,TValue>();
public void AddToGenericDictionary(TKey key, TValue value)
{
dictionary.Add(key, value);
}
}
我已經宣布一堂課
class GenericInput1
{
public string Name { get; set; }
}
在主函數中,我已經初始化GenericInput1類並添加到GenericDIctionary中。
class Program
{
static void Main(string[] args)
{
GenericInput1 inp1 = new GenericInput1 { Name = "An" };
GenericInput1 inp2 = new GenericInput1 { Name = "B" };
GenericInput1 inp3 = new GenericInput1 { Name = "C" };
GenericDictionary<int, GenericInput1> genericIntKey = new GenericDictionary<int, GenericInput1>();
genericIntKey.AddToGenericDictionary(1, inp1);
genericIntKey.AddToGenericDictionary(2, inp2);
genericIntKey.AddToGenericDictionary(3, inp3);
GenericInput1 result2 = genericIntKey[3];
Console.WriteLine(result2.Name);
}
}
當我運行程序時,它給了我以下異常:
未處理的異常:System.Collections.Generic.KeyNotFoundException:字典中不存在給定的鍵。
但是,如果我嘗試使用內置的Add方法添加到通用詞典中,則程序運行良好。
您是從Dictionary
繼承的,因此您的類中不需要后備字段Dictionary
。 因此,將其刪除並使用父字典:
class GenericDictionary<TKey, TValue> : Dictionary<TKey, TValue>
{
Dictionary<TKey, TValue> dictionary = new Dictionary<TKey,TValue>();
public void AddToGenericDictionary(TKey key, TValue value)
{
dictionary.Add(key, value);
}
}
至
class GenericDictionary<TKey, TValue> : Dictionary<TKey, TValue>
{
public void AddToGenericDictionary(TKey key, TValue value)
{
this.Add(key, value);
}
}
嘗試將代碼更改為
class GenericDictionary<TKey, TValue> : Dictionary<TKey, TValue>
{
public void AddToGenericDictionary(TKey key, TValue value)
{
this.Add(key, value);
}
}
覆蓋字典時,無需實現后備存儲。
但是,如果您希望實現自己的字典,請查看IDictionary接口
表示鍵/值對的通用集合。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.