c#哈希表问题
本文关键字:问题 哈希表 | 更新日期: 2023-09-27 17:50:31
我不知道这段代码有什么问题。它说字符串不能转换为对象。大概是这样的……
//lvLogs <-- ListView (2 colums)
Hashtable serverLogs = new Hashtable();
serverLogs.Add("a", "aw");
serverLogs.Add("b", "ew");
serverLogs.Add("c", "iw");
foreach (DictionaryEntry h in serverLogs)
{
lvLogs.Items.Add(h.Key).SubItems.Add(h.Value);
}
但是这段代码工作得很好…
Hashtable serverLogs = new Hashtable();
serverLogs.Add("a", "aw");
serverLogs.Add("b", "ew");
serverLogs.Add("c", "iw");
foreach (DictionaryEntry h in serverLogs)
{
//lvLogs.Items.Add(h.Key).SubItems.Add(h.Value);
//lvi.SubItems.Add(h.Value);
lvLogs.Items.Add(h.Key + " - " + h.Value);
}
如何从lvLogs的列中分离键和值?
Hashtable
不是强类型集合。DictionaryEntry.Key
返回一个object
,而您试图将其用作没有强制转换的string
,这是不允许的。
字符串连接工作的原因是接受object
作为参数(它在其上调用ToString()
)。
试试用Dictionary<string, string>
代替
第一项业务,删除Hashtable
。System.Collections
名称空间中的类已经过时,并已被System.Collections.Generic
名称空间中的等价类所取代。
用Dictionary<string, string>
代替