C# 操作类型为列表的属性
我有一个列表类型的属性,如下所示C# 操作类型为列表的属性,c#,list,properties,C#,List,Properties,我有一个列表类型的属性,如下所示 private List<ListCOP_PAYLOAD> m_COP_DATA = new List<ListCOP_PAYLOAD>(); public List<ListCOP_PAYLOAD> COP_DATA { get { return m_COP_DATA; } set { m_COP_DATA = value; FireN
private List<ListCOP_PAYLOAD> m_COP_DATA = new List<ListCOP_PAYLOAD>();
public List<ListCOP_PAYLOAD> COP_DATA
{
get
{
return m_COP_DATA;
}
set
{
m_COP_DATA = value;
FireNewSMode_Data();
}
}
但它只是增加了新数据变量的列表大小
我想清除以前的数据,所以我使用了
m_exchangedata.COP_DATA.Clear();
编辑:
我是按这个顺序用的
m_exchangedata.COP_DATA.Clear();
m_exchangedata.COP_DATA = Mstruct.lMCOPStruct;
但这似乎不起作用
我得到InvalidOperationException:序列不包含元素
如果事件处理程序不为null,FireNewSMode_数据只会触发一个带有该数据的事件
任何帮助都将不胜感激
提前感谢。在清除COP_数据之前设置计数条件。列表:
if(m_exchangedata.COP_DATA.Count > 0)
{
m_exchangedata.COP_DATA.Clear();
}
m_exchangedata.COP_DATA = Mstruct.lMCOPStruct;
你能提供
FireNewSMode\u数据
方法吗?似乎不起作用
->这没有多大意义。很好的注释,我在代码前面使用了它。我的问题是m_exchangedata和Mstruct都是引用类型,所以当我清除COP_数据时,我也清除了lMCOPStruct。我早该注意到的。
if(m_exchangedata.COP_DATA.Count > 0)
{
m_exchangedata.COP_DATA.Clear();
}
m_exchangedata.COP_DATA = Mstruct.lMCOPStruct;