2

所以我有一个字典,设置如下:

Dictionary<DateTime, List<Double>>

日期和时间是我从 Excel 电子表格中提取的月份,然后我的整数是美元金额。列如下所示:

7/1/10 | 6/1/10
----------------
100.00 | 90.00
----------------
  3.00 | 20.00
----------------
 35.00 | 10.00

依此类推,持续约 6 个月。我需要获取这些键和值。我需要把它放到我的数据库中。例如,对于值 100.00、3.00、35.00,它们都与 10 年 7 月 1 日协调(第一个键下面有 3 个值等)

有人可以告诉我如何迭代这些东西吗?当我调试我的字典时,正确输入了所有信息,但我无法将它们拉回来。

4

4 回答 4

5

只需在嵌套循环中直接迭代它们

Dictionary<DateTime, List<Double>> map;
foreach (var pair in map) {
  DateTime dt = pair.Key;
  foreach (double value in pair.Value) {
    // Now you have the DateTime and Double values
  }
}
于 2013-08-22T15:44:03.097 回答
2
 foreach(KeyValuePair<DateTime,List<Double> pair in dictionaryName){
    DateTime dt = pair.Key;
    List<Double> doubleList = pair.Value;

    //With this method you now can step through each key value pair 
 }
于 2013-08-22T15:44:56.173 回答
2

或使用 linq:

 var myDict = new Dictionary<DateTime, List<Double>>();
 var julyValues= myDict.Where(r => r.Key == new DateTime(2010, 7, 1))
                       .Select(r => r.Value);

或使用 groupby:

var groupValues= myDict.GroupBy(r => r.Key)
                       .Select(grp => 
                               new { grp.Key, 
                                     values = grp.Select(r => r.Value) 
                                   }
                               );
于 2013-08-22T15:47:50.283 回答
1

您可以对奇异值执行此操作(如果您知道密钥)

List<double> values = myDictionary[someDateValue];

您可以使用 aforeach来遍历所有密钥对

foreach(var pair in myDictionary)
{
    DateTime keyValue = pair.Key;
    List<double> valueValue = pair.Value;
}
于 2013-08-22T15:45:27.583 回答