【问题标题】:Creating a multidimensional dictionary in C# for Windows Phone 7.8在 C# 中为 Windows Phone 7.8 创建多维字典
【发布时间】:2013-05-03 02:18:30
【问题描述】:

我需要将每日统计数据存储在 Windpws Phone 的独立存储中,这让我相信多维字典将是最有用的,但我无法理解使其工作所需的逻辑。

统计数据在伪代码中看起来像这样:

dictionary DailyStats {
1,
[Stats] => dictionary {
  [Class] => 5,
  [Entertainment] => 3,
  [Personnel] => 2,
  [Price] => 7,
  [Quality] => 6
  }
}

我是从这个开始的:

var DailyStats = new Dictionary<int, Dictionary<string, string>>();

但是当我想给这个结构赋值时,我很快就迷路了。应用每天都会收集这些值。

我想到了 Linq,但对于我正在尝试做的事情来说,它似乎有点矫枉过正。

谁能指出我正确的方向?

谢谢!

【问题讨论】:

    标签: c# windows-phone-7 dictionary multidimensional-array


    【解决方案1】:

    如果你有一本带有StatusClasses???的字典

    var DailyStats = new Dictionary<int, StatusClass>();
    

    还有:

    class StatusClass
    {
        //substitute the vars for their type
        var Class;
        var Entertainment;
        var Personnel;
        var Price;
        var Quality;
    
        public StatusClass(var ClassValue, var EntertainmentValue, var Personnel.....)
        {
            Class = ClassValue;
            Entertainment = EntertainmentValue;
            ...........
        }
    }
    

    【讨论】:

    • 我认为“按原样”将其存储在隔离存储中没有问题?我想使用一个类,但不确定是否可以将类存储在 iso 存储中。
    • 这样做的一个要求是我可以将字典“按原样”存储在Windows Phone的隔离存储中。
    【解决方案2】:

    如果您的钥匙是固定的,Daniel 的解决方案就是您要走的路。如果你想使用字典,这样的静态类可能会有所帮助:

    static class DailyStats
    {
        static Dictionary<int, Dictionary<string, string>> _dic;
    
        static DailyStats()
        {
            _dic = new Dictionary<int, Dictionary<string, string>>();
        }
    
        public static void Add(int i, string key, string value)
        {
            if (!_dic.ContainsKey(i))
                _dic[i] = new Dictionary<string, string>();
            _dic[i][key] = value;
        }
    
        public static string Get(int i, string key)
        {
            if (!_dic.ContainsKey(i) || !_dic[i].ContainsKey(key))
                return null;
            return _dic[i][key];
        }
    }
    
    
        DailyStats.Add(1, "Stats", "a");
        Console.WriteLine(DailyStats.Get(1, "Stats"));
    

    【讨论】:

    • 是的,整个结构是固定的,所以我不需要任何逻辑来管理灵活的解决方案。
    猜你喜欢
    • 2013-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-29
    • 2014-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多