如何为IDictionary <int,string =“”>?</int,>创建实例

时间:2015-01-19 12:23:27

标签: c# asp.net-mvc razor

我有我的模特,

public IDictionary<int, string> QuestionSetList { get; set; }

我不能在我的控制器中使用这个QuestionSetList,当它执行时,它抛出一个NullReferenceException,说:对象引用没有设置为对象的实例。 我有我的代码,

model.QuestionSetList.Add(QuestionSetNo,QuestionSetTopic);

请告诉我如何解决这个问题。

2 个答案:

答案 0 :(得分:8)

您无法实例化接口,因为接口只是合同。它没有任何实现

您需要实例化实现该接口的类型。在这种情况下,您可以使用Dictionary<int, string>来实现IDictionary<int, string>

答案 1 :(得分:2)

您必须实例化包含Dictionary的变量。这就是你得到NullReferenceException的原因。

尝试下面的内容。

private IDictionary<int, string> _questionSetList;
public IDictionary<int, string> QuestionSetList 
{ 
  get
  {
    if (_questionSetList == null)
    {
      _questionSetList = Dictionary<int, string>();
    }
    return _questionSetList;
  }
  set
  {
    _questionSetList = value;
  }
}