C# 如何在一个会话中存储多个列表?

C# 如何在一个会话中存储多个列表?,c#,asp.net,C#,Asp.net,我有一个带有“ID”参数的ASP.NET页面: 我想根据“ID”参数在会话中存储我的类的列表 public List<MyClass> list { get { if (Session["SessionName"] == null) { Session["SessionName"] = new List<MyClass>(); } return Session["Ses

我有一个带有“ID”参数的ASP.NET页面:

我想根据“ID”参数在会话中存储我的类的列表

public List<MyClass> list
{
    get
    {
        if (Session["SessionName"] == null)
        {
            Session["SessionName"] = new List<MyClass>();
        }
        return Session["SessionName"] as List<MyClass>;
    }
    set
    {
        Session["SessionName"] = value;
    }
}
公共列表
{
得到
{
if(Session[“SessionName”]==null)
{
会话[“SessionName”]=新列表();
}
将会话[“SessionName”]返回为列表;
}
设置
{
会话[“SessionName”]=值;
}
}
我的意思是: 当“ID”=1时,一些值将存储在列表中, 当“ID”=2时,列表中将存储另一个值 . .

我为什么这么做?
因为最终用户可以使用不同的“ID”值在多个浏览器选项卡中查看同一页面

为什么不使用字典而不是列表

public Dictionary<int, List<MyClass>> list
{
    get
    {
        if (Session["SessionName"] == null)
        {
            Session["SessionName"] = new Dictionary<int, List<MyClass>>();
        }
        return Session["SessionName"] as Dictionary<int, List<MyClass>>;
    }
    set
    {
        Session["SessionName"] = value;
    }
}
公共字典列表
{
得到
{
if(Session[“SessionName”]==null)
{
会话[“SessionName”]=新字典();
}
将会话[“SessionName”]作为字典返回;
}
设置
{
会话[“SessionName”]=值;
}
}
通过这种方式,您可以如下方式获取它:

List<MyClass> l = list[1]
List l=List[1]

在会话中存储完整列表,然后您可以根据ID从会话列表中获取值。那么“ID”在两个选项卡中的值是否相同?谢谢“Rohit Vyas”,我希望每个选项卡都有不同的列表?谢谢“Patrick Hofman”,我希望每个选项卡都有不同的列表(可能“ID”在许多页面中都有“0”值)?@asp.netprogrammer:字典包含一个列表,因此您可以在其中包含多个值。