假设我有一组对象
List<MyClass> collection = new List<MyClass>();
以及将插入这些对象的字典
Dictionary<string, List<MyClass>> sections = new Dictionary<string, List<MyClass>>();
// example of insertion
sections["A"].Add(collection[2]);
列表和字典存储在一个ViewState
. 将对象的标识符存储在字典中并稍后在我需要它们时将它们与对象绑定会更方便内存吗?
Dictionary<string, List<int>> sections = new Dictionary<string, List<int>>();
// example of insertion
sections["A"].Add(collection[2].ID);
据我了解,不会有性能提升,因为在第一种情况下,字典将包含大小为 32/64 位的引用。这是真的吗?
编辑
MyClass
是一个类,而不是一个结构。List 和 Dictionary 声明如下:
private List<MyClass> A
{
get
{
if (ViewState["a"] == null)
{
ViewState["a"] = // retrieve data from db
}
return (List<MyClass>)ViewState["a"];
}
set
{
ViewState["a"] = value;
}
}
private Dictionary<string, List<MyClass>> B
{
get
{
if (ViewState["b"] == null)
{
ViewState["b"] = new Dictionary<string, List<MyClass>>();
}
return (Dictionary<string, List<MyClass>>)ViewState["b"];
}
set
{
ViewState["b"] = value;
}
}