2013-05-08 61 views
0

我需要将每日统计信息存储在Windpws Phone的隔离存储中,这使我相信多维字典将是最有用的,但我无法绕开我的头需要这个工作的逻辑。在C#中为Windows Phone创建多维字典7.8

的统计数据看起来伪代码是这样的:

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

我开始了这一点:

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

但只要我想赋值给这个结构我迷路了相当快。这些值由应用每天收集。

我想过Linq,但它似乎是我想要做的矫枉过正。

任何人都可以指向正确的方向吗?

谢谢!

回答

1

如果你有一个与StatusClasses dicionary ???

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; 
     ........... 
    } 
} 
+0

我认为没有问题存储在孤立的存储“按原样”?我想过使用一个类,但不知道我是否可以将该类存储在iso存储中。 – 2013-05-08 21:15:31

+0

我不能说,对不起.....什么是iso存储? – 2013-05-08 21:59:30

+0

其中一个要求是我可以将字典“按原样”存储在Windows Phone的独立存储中。 – 2013-05-08 22:10:54

0

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

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")); 
+0

是的,整个结构是固定的,所以我不需要任何逻辑来管理灵活的解决方案。 – 2013-05-08 21:16:59