2013-05-08 56 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