存储数据集的C#哈希表
本文关键字:哈希表 数据集 存储 | 更新日期: 2023-09-27 18:26:01
我正试图弄清楚如何使用哈希表存储和检索数据集。
这是我尝试过的,但当我尝试时,我得到了无效的强制转换异常。此外,我如何循环通过该哈希并获得密钥以及数据集
Hashtable myHash = new Hashtable();
myHash.Add("1", someDataSet);
foreach (DataSet ds in myHash)
{
lblMessage.Text = lblMessage.Text + " - Hash ID + ds[0].TableName";
}
我可能应该加上前两行代码通过,第三行代码崩溃。
您当前正在尝试遍历所有键/值对,但将它们强制转换为DataSet
。你可以很容易地解决这个问题:
foreach (DataSet ds in myHash.Values)
如果您确实也需要密钥,您可以将迭代变量更改为DictionaryEntry
类型,但除非您需要密钥,否则不需要使用它。
但我强烈建议您改用泛型集合。
试试这个
foreach (DictionaryEntry entry in myHash)
{
DataSet ds = (DataSet)entry.Value;
lblMessage.Text = lblMessage.Text + " - Hash ID + ds[0].TableName";
}
Dictionary将以DictionaryEntry
结构的形式保存key
和value
,因此您不能从DictionaryEntry
强制转换为DataSet
。实际上,您的数据集是添加到Hashtable的Value,因此它将位于DictionaryEntry.Value
属性中
编辑如评论中所述,DirectCast适合