在会话中访问字典

时间:2011-01-31 16:34:16

标签: asp.net

假设我有一个字典,我想在会话中存储。该词典将存储一个以日期为关键字的对象列表。

Dictionary<DateTime, List<MyObjects>> SessionDictionaryMyObjects = new...

如何使用键31/1/2011将列表MyList放入字典中,如何从字典中检索2011年1月19日的列表?

感谢。

2 个答案:

答案 0 :(得分:2)

喜欢这个吗?

Dictionary<DateTime, List<MyObjects>> SessionDictionaryMyObjects = Session["SessionDictionaryMyObjects"] as Dictionary<DateTime, List<MyObjects>>;
if (SessionDictionaryMyObjects == null)
{
     Session["SessionDictionaryMyObjects"] = SessionDictionaryMyObjects = 
          new Dictionary<DateTime, List<MyObjects>>();
}

// Set value
SessionDictionaryMyObjects.Add(new DateTime(2011, 1, 31), yourListObject);

if (SessionDictionaryMyObjects.Contains(new DateTime(2011, 1, 19)))
{
    // Get value
    List<MyObjects> o = SessionDictionaryMyObjects[new DateTime(2011, 1, 19)];
}

您还应该使用ContainsKey方法

来检查词典中是否存在该值

答案 1 :(得分:1)

//to add
List<MyObjects> myList = new List<MyObjects>();
//myList.add("etc") ...

SessionDictionaryMyObjects.Add(DateTime.Parse("31/1/2011"),myList);


//to retrieve    
if (SessionDictionaryMyObjects.ContainsKey(DateTime.Parse("1/19/2011")))
{
 List<MyObjects> myList= SessionDictionaryMyObjects[DateTime.Parse("1/19/2011")];
}