如何为 IDictionary<int, string> 创建实例?

How to create instance for IDictionary<int, string>?

我有我的模特,

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

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

model.QuestionSetList.Add(QuestionSetNo,QuestionSetTopic);

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

您不能实例化接口,因为接口不过是一个合同。它没有任何 实现

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

Dictionary<int, string>

您必须实例化保存词典的变量。这就是你得到 NullReferenceException 的原因。

试试下面的方法。

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