2012-11-20 69 views
1

我有以下代码。它不会向字典中添加新的键值....最新错误?使用Timespan作为字典中的键?

while(true) 
{ 
TimeSpan t = // some timespan which is updating every second 
int value = // some value associated with timespan 

Dictionary<TimeSpan,int> _dict = new Dictionary<TimeSpan,int>(); 
_dict.Add(t,value); 
} 
+0

问题是什么?重复密钥?无限循环('while(true)')? –

+0

循环不是问题...每次我添加一些数据时,密钥都会被覆盖。 – varun257

+0

也许给我们一些不起作用的例子 –

回答

4

的问题是,你实例化一个全新的字典中的每个循环执行

时间试试这个:

Dictionary<TimeSpan,int> _dict = new Dictionary<TimeSpan,int>(); 
while(true) 
{ 
     TimeSpan t = // some timespan which is updating every second 
     int value = // some value associated with timespan 
     _dict.Add(t,value); 
} 

作为一个侧面说明,它可能会更有意义,只是使用作为密钥而不是时间跨度对象的总计过时刻度或毫秒数

+0

非常感谢@pickles ......这么愚蠢的我......如果我添加重复键会发生什么? – varun257

+1

如果你使用Add,你会得到一个异常。如果使用_dict [t] =值,它将替换现有的键/值对 – cordialgerm