我有一個存儲列表轉換成字典高速緩存類:訪問屬性
public class CacheList<T>
{
private Dictionary<UInt64, T> _cacheItems = new Dictionary<UInt64, T>();
public IList<T> GetItems()
{
return new List<T>(_cacheItems.Values);
}
public void Add(T item)
{
UInt64 key = (UInt64)(item.GetHashCode());
if (!_cacheItems.ContainsKey(key))
_cacheItems.Add(key, item);
}
}
現在,我從通用T.獲得的哈希碼將項目添加到字典中,但我想指定我想將哪個字段/屬性作爲關鍵字。問題是它是一個類型T,所以它不知道這個項目中的哪些屬性。
我如何從普通物品訪問屬性?
這可能是問題的一部分,但是:您不應該使用散列碼作爲鍵(它不能保證是唯一的),並且沒有意義將「int」存儲爲「ulong」爲什麼 – 2012-07-23 08:19:17
將項目存儲到字典並關注密鑰生成,爲什麼不使用其他結構,如HashSet?因爲您生成密鑰的方式,您必須提供項目以生成密鑰以在字典中查找項目。 –
Tamir
2012-07-23 08:23:26
@marc,感謝您的評論,但這只是一個快速測試,以顯示我的問題:) – YesMan85 2012-07-23 09:58:40