我需要实现某种字典对象。像MyDict<K,V1, V2)
这样的东西。例如,如果我有一个问题作为密钥(k),那么正确答案是V1。 V2是用户选择的答案。是否有一个集合可以满足C#中的这个要求。如果我必须设计自己的类型,我应该实现哪些接口。 ICollection
和Ilist
?
答案 0 :(得分:1)
集合类被定义为System.Collections
或System.Collections.Generic
命名空间的一部分。
一些事情:
Dictionary<Question,Answer> qDict = new Dictionary<Question, Answer>();
Answer attempt_v2 = new Answer();
Question question = new Question();
if (qDict.ContainsKey(question))
{
Answer actual_answerv1 = qDict[question];
if (actual_answerv1 == attempt_v2)
{
// Answers match
}
}
[注意:我刚敲了一下。它可能不是解决问题和答案匹配问题的最佳解决方案......]
答案 1 :(得分:1)
如果您使用的是.NET 4,则可以使用几个通用的Tuple
类。
所以,你可以使用:
Dictionary<T,Tuple<V1,V2>>
在早期版本中,您可以使用KeyValuePair<T1,T2>
作为第二种通用类型:
Dictionary<T,KeyValuePair<V1,V2>>
答案 2 :(得分:0)
我认为需要新的实施方案。
如果您的答案中有属性,则可以创建。
Dictionary<Question, IList<Answer>>
或者您可以使用
类型class Answers {
Ilist Answers;
Answer Selected;
}