如何创建真正复杂的集合?

时间:2013-03-08 23:17:28

标签: collections dictionary

看起来我永远不会遇到问题。现在我想初始化一个像这样的字典(正是这样):

Dictionary<string, Dictionary<int, int>> origRes = new Dictionary<string, Dictionary<int, int>>

否则我需要一个集合,它可以包含一个字符串和两个整数值。并且足够简单的forforeach循环来收集所有这些数据(字符串可以是键值)?

更新

public static Dictionary<int, int> resRequest(string requestedForm)
        {
            Dictionary<int, int> kp = new Dictionary<int, int>();
            Dictionary<string, KeyValuePair<int, int>> origRes = new Dictionary<string, KeyValuePair<int, int>>();
            origRes.Add("Polübiosz", new KeyValuePair<int, int>(560,310));
            origRes.Add("Morze", new KeyValuePair<int, int>(690, 510));
            origRes.Add("Caesar", new KeyValuePair<int, int>(700, 500));
            origRes.Add("OwnCrypt", new KeyValuePair<int, int>(830, 570));
            origRes.Add("Hamming", new KeyValuePair<int, int>(850, 500));
            origRes.Add("Kezdőkép", new KeyValuePair<int, int>(1280, 1024));

            foreach(KeyValuePair<string,KeyValuePair<int, int>> pair in origRes)
            {
                if(pair.Key==requestedForm)
                {
                    kp.Add(pair.Value.Key,pair.Value.Value);
                }
            }
            return kp;
        }

这是我的完整方法我希望从KeyValuePair获取密钥和值,但返回的词典不包含它或者我不知道,但是在调用时一边没有键或值属性只有键和值。

1 个答案:

答案 0 :(得分:3)

为什么不创建一个包含字符串,int,int的类,并用它填充一个更简单的字典?

所以而不是

Dictionary<string, Dictionary<int, int>>

执行:

Dictionary<string, MyType>

MyType类似于:

class MyType {
    public string KeyVal { get; set; } // optional - to match your dict key
    public int Int1Val{ get; set; }
    public int Int2Val{ get; set; }
}