问题描述
- 有么有人能给我解释下这段代码的意思啊
-
foreach (DictionaryEntry item in AddNewForm.ht)
{
object key = item.Key;
NewType nt = (NewType)item.Value;
ListViewItem lvi = new ListViewItem(key.ToString()); //编号
lvi.SubItems.Add(nt.Name); //类型名称
lvi.SubItems.Add(nt.Remark); //备注信息
listView1.Items.Add(lvi);
}ht是Haastable的实例 newtype是一个封装字段的类
解决方案
foreach (DictionaryEntry item in AddNewForm.ht) //遍历添加新数据窗体的hashtable
{
object key = item.Key; //key是每个hash项的key关键字
NewType nt = (NewType)item.Value; //nt是它的 value,是object类型,强制转换为newtype类型
ListViewItem lvi = new ListViewItem(key.ToString()); //编号 ,创建一个listview中的一行代表的对象,并且它的第一列的文字是key,也就是编号
lvi.SubItems.Add(nt.Name); //类型名称,第二列
lvi.SubItems.Add(nt.Remark); //备注信息,第三列
listView1.Items.Add(lvi); // 往listview控件(listview1)中插入这一行。
}
解决方案二:
Hashtable是非泛型的集合,所以在检索和存储值类型时通常会发生装箱与拆箱的操作。
当把某个元素添加到 Hashtable 时,将根据键的哈希代码将该元素放入存储桶中,由于是散列算法所以会出现一个哈希函数能够为两个不同的键生成相同的哈希代码,该键的后续查找将使用键的哈希代码只在一个特定存储桶中搜索,这将大大减少为查找一个元素所需的键比较的次数。
Hashtable 的加载因子确定元素与Hashtable 可拥有的元素数的最大比率。加载因子越小,平均查找速度越快,但消耗的内存也增加。默认的加载因子 0.72通常提供速度和大小之间的最佳平衡。当创建 Hashtable 时,也可以指定其他加载因子。
元素总量/ Hashtable 可拥有的元素数=加载因子
当向 Hashtable 添加元素时,Hashtable 的实际加载因子将增加。当实际加载因子达到指定的加载因子时,Hashtable 中存储桶的数目自动增加到大于当前 Hashtable 存储桶数两倍的最小素数。
扩容时所有的数据需要重新进行散列计算。虽然Hash具有O(1)的数据检索效率,但它空间开销却通常很大,是以空间换取时间。所以Hashtable适用于读取操作频繁,写入操作很少的操作类型。
解决方案三:
应该是将AddNewForm封装的实例中的每一个ht子对象读取出来,然后把某些字段的内容动态添加到listView1的SubItems上加以展示。
解决方案四:
从AddNewForm.ht中取出item,然后实例化类.
解决方案五:
这段代码是什么意思
关于这段奇怪代码的解释
时间: 2024-10-31 19:38:28