C#按值获取字典键,其中value是struct类型

时间:2015-04-02 16:32:18

标签: c# dictionary struct timer key

请告诉我这是否可行,以及如何做到这一点。

In C# I have a struct like:

public struct FrmData{
int num;
int x;
Timer t;
}

我使用的是字典,其中value是该结构。

public Dictionary<int, FrmData> dictionary;

当我的计时器t过去时,他提出了事件

public void eventHandlerTick(object sender, EventArgs e){
switch(key){case 1:break;}
}

我的问题是:我可以以某种方式从此计时器中获取我的字典的密钥吗? 谢谢

1 个答案:

答案 0 :(得分:0)

唯一的方法是循环键值对,检查每对的值,看它是否与你的计时器匹配。

类似的东西:

Timer t = sender as Timer;
foreach(var kvp in dictionary){ // Could also do KeyValuePair<int, FrmData> instead of var
    if(kvp.Value.Timer == t)
    {
         int key = kvp.Key
         // Do something with the key
    }
}

public struct FrmData
{
    int num;
    int x;
    Timer t;

    public Timer Timer
    {
        get { return t; }
    }
}

修改

我的原始回答推测你的词典结构是一成不变的。如果没有,Will的评论将是更好的选择,因为它将使您能够更有效地参考结构。