向Hashtable中添加值,而不考虑索引值
本文关键字:不考虑 索引值 Hashtable 添加 | 更新日期: 2023-09-27 18:17:13
我正在从数据库中检索列表中的数据,并希望将其两个列存储在散列表中。但是我只能在索引为0的哈希表中插入一行。有没有一种方法插入到哈希表不考虑索引?我现在正在使用下面的方法。有什么建议吗?
foreach (StoreInfo store_info_id in StoreList)
{
Hashtable hashTable = new Hash table();
hashTable.Add(StoreList[0].store_info_id, StoreList[0].RetailControlNumber);
}
三点:
-
Hashtable
只是Dictionary<object, object>
,在有类型参数之前。所以,今天不再有任何好的理由使用Hashtable
,除非你正在与遗留代码接口,这些代码是在Hashtable
是唯一的选择时编写的。 -
如果您想将两个列放入字典中的同一条目中,正确的方法是创建一个类型来表示字典中的记录:
然后,使用public class StoreRecord { public int StoreInfoID; public string Column1; public string Column2; }
Dictionary<int, StoreRecord>
:var records = new Dictionary<int, StoreRecord>(); foreach (var storeDatabaseRow in storeList) { var record = new StoreRecord(); record.StoreInfoID = storeDatabaseRow.store_info_id; record.Column1 = storeDatabaseRow.Column1; record.Column2 = storeDatabaseRow.Column2; records[record.StoreInfoID] = record; }
-
如果您的数据库记录是轻量级的和断开连接的,为什么不从字典中引用整个数据库记录?
var records = new Dictionary<int, StoreInfo>(); foreach (var storeDatabaseRow in storeList) records[storeDatabaseRow.store_info_id] = storeDatabaseRow;
或使用LINQ:
var records = storeList.ToDictionary(keySelector: row => row.store_info_id);