Skip to main content
 首页 » 编程设计

c#之遍历集合时出错

2024年01月28日32mate10pro

使用这段代码:

Dictionary<DateTime, double> FlowInformation = new Dictionary<DateTime, double>(); 
 
foreach (DateTime key in FlowInformation) 
{ 
    if (initialialrec != 0) 
    { 
        if (FlowInformation[key] > initialialrec) 
            flow = key.ToShortDateString() + " " + key.ToShortTimeString() + "+"; 
 
        if (FlowInformation[key] < initialialrec) 
            flow = key.ToShortDateString() + " " + key.ToShortTimeString()+"-"; 
 
        initialialrec = FlowInformation[key]; 
        file.WriteLine(flow); 
    } 
 
    FlowInformation.Clear();                     
} 

我得到一个编译错误:

Strategy\theFlowStrategy.cs Cannot convert type 'System.Collections.Generic.KeyValuePair' to 'System.DateTime'    

我如何遍历这个集合?

请您参考如下方法:

通用字典是 KeyValuePair 项的列表。

要在键上循环(正如您尝试做的那样),然后在 FlowInformation.Keys 上循环。您还可以直接使用 FlowInformation.Values 循环值。

您可以做的另一件事是使用 KeyValuePair 作为迭代变量类型。这将使您不必执行 FlowInformation[key] 来找出哪个值对应于您的键,因为该值将位于迭代变量的 .Value 属性中。