나는 사전에 목록을 저장하는 캐시 클래스가 :액세스 속성은
이제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'으로 저장하는 이유는 없습니다 –
왜 항목을 사전에 저장하고 키 생성에주의를 기울여야합니다. HashSet과 같은 다른 구조를 사용하지 않는 이유는 무엇입니까? 왜냐하면 당신이 키를 생성하는 방식이기 때문에 사전에 항목을 찾을 키를 생성하기 위해 항목을 제공해야합니다. –
Tamir
@marc, 귀하의 의견을 주셔서 감사합니다,하지만 이것은 내 문제를 보여주기위한 간단한 테스트였습니다 :) – YesMan85