C#Generic Collection帮助

时间:2010-05-16 06:53:03

标签: c# collections

我需要实现某种字典对象。像MyDict<K,V1, V2)这样的东西。例如,如果我有一个问题作为密钥(k),那么正确答案是V1。 V2是用户选择的答案。是否有一个集合可以满足C#中的这个要求。如果我必须设计自己的类型,我应该实现哪些接口。 ICollectionIlist

3 个答案:

答案 0 :(得分:1)

集合类被定义为System.CollectionsSystem.Collections.Generic命名空间的一部分。

Generic Dictionary Class

一些事情:

        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;
}