オブジェクトのコレクションがあるとします
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;
}
}