请告诉我这是否可行,以及如何做到这一点。
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;}
}
我的问题是:我可以以某种方式从此计时器中获取我的字典的密钥吗? 谢谢
答案 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的评论将是更好的选择,因为它将使您能够更有效地参考结构。