将事件更改的项添加到列表中

时间:2012-04-24 22:49:05

标签: c#

我是C#的新手,特别是(当然!)活动......

在我的代码中,我们从事件中获取元素T,并希望将其添加到列表(List)。

由于T被签名为“OnPropertyChanging”,它在我的代码中的任何地方都会发生变化,因此List上的所有成员都是相同的。那么我应该实现什么来保存列表中T的所有过去值?

提前致谢。

编辑(试图更好地解释):

我有一个通过DDE接收数据的应用程序,我用它来执行实时计算。到现在为止,没问题。当我必须使用以前的数据时,我的问题就开始了,因为我无法将它们保存在列表中。

我在第一次数据读取中创建一个列表并将值添加到其中:

ticks = new List<Tick> { tick };   // where tick comes via DDE

第二次重新发布后,我想使用列表的最后一个值并将其与最新值进行比较:

Tick prevTick = ticks.Last();
Tick currTick = tick;              // this tick is different from the former

但是我确认prevTick等于currTick。显然,“PropertyChange”会改变程序的所有实例,在我有机会将其传递给prevTick之前修改tick的内容。

1 个答案:

答案 0 :(得分:0)

假设Tick是一个类,prevTickcurrTick很可能是同一个实例,而提供Tick实例的底层代码只是更新存储的值这个例子。这可以解释您的想法PropertyChange更改所有刻度实例 - 实际上只有一个实例

我将创建自己的类,其中包含Tick包含的每个数据的属性,并为您的历史列表填充此类的新实例。如果您只需要每个Tick中的一个数字,那么您可以使用List<int>来存储您的历史记录。