Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在属性中使用.Add()方法添加元素后获取list.Count零_C#_List_Session_Properties - Fatal编程技术网

C# 在属性中使用.Add()方法添加元素后获取list.Count零

C# 在属性中使用.Add()方法添加元素后获取list.Count零,c#,list,session,properties,C#,List,Session,Properties,下面是我的代码 private List<string> _myList public List<string> myList { get { if (Session["MyData"] != null) _myList = Session["MyData"] as List<string>; if(_myList==null) _myList = new

下面是我的代码

private List<string> _myList
public List<string> myList
{
     get
     {
         if (Session["MyData"] != null)
            _myList = Session["MyData"] as List<string>;
         if(_myList==null)
            _myList = new List<string>();
         return _myList; 
      }

     set 
     { 
         Session["MyData"] = value; 
     }
  }
和使用

 myList.Count 

我得到
myList.Count等于0
我不知道我的代码有什么问题。

这会覆盖列表:

 get
 {
     if (Session["MyData"] != null)
        _myList = Session["MyData"] as List<string>; //<-- here
     if(_myList==null)
        _myList = new List<string>();
     return _myList; 
 }
get
{
if(会话[“MyData”]!=null)

_myList=Session[“MyData”]as List;//您没有修改
\u myList
。在
get
中,有时您会返回一个新的
列表
,因此您会将新项添加到该新的
列表
中,当再次调用它时,您会为另一个新的
列表
计算成员数。属性getter不会设置
会话[“MyData”]=new List();
正确

将代码更改为:

public List<string> myList
{
     get
     {
         return Session["MyData"] ?? (Session["MyData"] == new List<string>());
     }

     set 
     { 
         Session["MyData"] = value; 
     }
}
公共列表myList
{
得到
{
返回会话[“MyData”]??(会话[“MyData”]==新列表());
}
设置
{ 
会话[“MyData”]=值;
}
}
获取
{
如果(_myList!=null)
{ 
会话[“MyData”]=\u myList;//更改
返回我的列表;
}
if(会话[“MyData”]!=null)
_myList=会话[“MyData”]作为列表;
其他的
_myList=新列表();
返回我的列表;
}
设置
{
_myList=value;//更改
会话[“MyData”]=值;
}

谢谢你的回答,这对我很有帮助。我对它做了一些修改,效果很好。
 get
 {
     if(_myList != null)
       return _mylist;

     if (Session["MyData"] != null)
        _myList = Session["MyData"] as List<string>;
     else
        _myList = new List<string>();

     return _myList; 
 }
public List<string> myList
{
     get
     {
         return Session["MyData"] ?? (Session["MyData"] == new List<string>());
     }

     set 
     { 
         Session["MyData"] = value; 
     }
}
get
{
   if(_myList != null)
   { 
      Session["MyData"] = _myList;   // change
      return _myList;
   }

   if (Session["MyData"] != null)
      _myList = Session["MyData"] as List<string>;
   else
      _myList = new List<string>();

   return _myList; 
}
set
{
    _myList = value;         //change
    Session["MyData"] = value;
}