0

我需要将每日统计数据存储在 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,但对于我想要做的事情来说似乎有点过头了。

谁能指出我正确的方向?

谢谢!

4

2 回答 2

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;
        ...........
    }
}
于 2013-05-08T18:57:14.287 回答
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"));
于 2013-05-08T19:07:57.067 回答