C#在哈希表中查找一个键并收集相应的值
有谁能告诉我如何在哈希表中搜索特定的键,并推迟变量中的相应值(例如,键和值都来自类C#在哈希表中查找一个键并收集相应的值,c#,hashtable,point,C#,Hashtable,Point,有谁能告诉我如何在哈希表中搜索特定的键,并推迟变量中的相应值(例如,键和值都来自类点) 我添加如下值: Hashtable Hash = new Hashtable(); Hash.Add(new Point(Po.X - 1, Po.Y), new Point(Po.X, Po.Y)); 您可以使用以下选项: Point value; if (Hash.ContainsKey(YourKey)) { value = (Point)Hash[YourKey]; } 您可以使
点
)
我添加如下值:
Hashtable Hash = new Hashtable();
Hash.Add(new Point(Po.X - 1, Po.Y), new Point(Po.X, Po.Y));
您可以使用以下选项:
Point value;
if (Hash.ContainsKey(YourKey))
{
value = (Point)Hash[YourKey];
}
您可以使用以下选项:
Point value;
if (Hash.ContainsKey(YourKey))
{
value = (Point)Hash[YourKey];
}
您不应该查看HashTable,而应该查看generic。(如果您使用的是.Net framework 2.0或更高版本) 但是,如果您想从当前非泛型
哈希表中获取密钥,可以执行以下操作:
var KeyToSearch = new Point(10 - 1, 20);
if (Hash.ContainsKey(KeyToSearch))
{
var value = Hash[KeyToSearch];
}
但请记住,值
属于对象
类型,您必须使用显式强制转换来获取点
对象,如下所示:
Point value = (Point) Hash[KeyToSearch] ;
如果您要使用字典
,则无需强制转换即可实现同样的效果
还有一件事需要补充,点
在这里被认为是来自系统的结构。绘制,如果它是一个类,那么包含skey
和基于键的访问将比较参考值而不是实际值。如果您的点
是一个类(引用类型),那么您必须覆盖GetHashCode
和等于
,您可以查看更多详细信息 而不是哈希表
您应该查看泛型。(如果您使用的是.Net framework 2.0或更高版本)
但是,如果您想从当前非泛型哈希表中获取密钥,可以执行以下操作:
var KeyToSearch = new Point(10 - 1, 20);
if (Hash.ContainsKey(KeyToSearch))
{
var value = Hash[KeyToSearch];
}
但请记住,值
属于对象
类型,您必须使用显式强制转换来获取点
对象,如下所示:
Point value = (Point) Hash[KeyToSearch] ;
如果您要使用字典
,则无需强制转换即可实现同样的效果
还有一件事需要补充,点
在这里被认为是来自系统的结构。绘制,如果它是一个类,那么包含skey
和基于键的访问将比较参考值而不是实际值。如果您的点
是一个类(引用类型),那么您必须覆盖GetHashCode
和等于
,您可以查看更多详细信息