如何从字典外部/或类中获取字典值
本文关键字:字典 获取 外部 | 更新日期: 2023-09-27 18:31:28
假设我在 1 个类中有一个字典函数:
public static class Class1
{
public static void StatDict(int EventNumber, string EventCode)
{
Dictionary<int, string> Dict1 = new Dictionary<int, sting>();
Dictionary.Add(EventNumber, EventCode);
}
}
输入示例:EventNumber = '4',EventCode = '4TUI'//这是从另一个类 Class2 提供的
我想在类 2 或函数中将 Int i = 4 与字典的键 4 进行比较,以便我可以提取键 4 的值。(即"4TUI")。
public static class Class2
{
public void CompareIntToDictionary()
{
Int Compare= 4;
if (Compare == Dictionary(value);????????????????????? // *This part i need help with*
{
Do something!!!
}
}
}
任何人都可以告诉我如何引用存在于 1 个类中的字典以提取与键关联的值,如果它与我在其他地方(即在另一个类中)定义的整数匹配?任何帮助将不胜感激,谢谢。
编辑:谢谢你,似乎它似乎确实可以解决问题,除了以下代码确实返回 false,即使我知道密钥在那里,它也会跳过这个(因此是 false):
int Compare = 4;
if (Class1.Dict1.ContainsKey(Compare))
{
var eventCodecheck = Class1.Dict1[Compare];
Debug.WriteLine("eventcode = " + eventCodecheck);
// Do something!!!
}
但现在我面临的问题是我需要覆盖 GetHashCode 和 Equals 才能使用字典比较来自 2 个不同对象的键。
由于有用的答案,这是我使用的代码,但我不太确定如何覆盖 GetHascode 和 Equals:
public static class Class1
{
public static Dictionary<int, string> Dict1 { get; set; }
public static void StatDict(int EventNumber, string EventCode)
{
Dict1 = new Dictionary<int, string>();
Dict1.Add(EventNumber, EventCode);
Debug.WriteLine("EventNumber = " + EventNumber + " EventCode = " + EventCode);
}
}
public static class Class2
{
public static void CompareIntToDictionary()
{
int Compare = 4;
if (Class1.Dict1.ContainsKey(Compare))
{
var eventCodecheck = Class1.Dict1[Compare];
Debug.WriteLine("eventcode = " + eventCodecheck);
// Do something!!!
}
}
}
我只是在学习这些东西。
公开您在Class1
中创建的字典并在Class2
中使用它:
public static class Class1
{
public static Dictionary<int, string> Dict1 { get; set; }
public static void StatDict(int EventNumber, string EventCode)
{
Dict1 = new Dictionary<int, sting>();
Dict1.Add(EventNumber, EventCode);
}
}
public static class Class2
{
public void CompareIntToDictionary()
{
int Compare = 4;
if (Class1.Dict1.ContainsKey(Compare))
{
var eventCode = Class1.Dict1[Compare];
// Do something!!!
}
}
}
最好使用对象而不是静态。
感谢您的输入,如果您能帮助我,您可以随心所欲地称呼我!
最后,我切换到解决了问题的排序列表,但是发布的代码帮助我指明了正确的方向,所以非常感谢。