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的列中分离键和值?

c#哈希表问题

Hashtable不是强类型集合。DictionaryEntry.Key返回一个object,而您试图将其用作没有强制转换的string,这是不允许的。

字符串连接工作的原因是接受object作为参数(它在其上调用ToString())。

试试用Dictionary<string, string>代替

第一项业务,删除HashtableSystem.Collections名称空间中的类已经过时,并已被System.Collections.Generic名称空间中的等价类所取代。

Dictionary<string, string>代替