问题 添加项目以列出,避免连续添加相同的项目

CSQ.

新成员
加入
2016年9月26日
消息
4
编程经验
Beginner
你好,听起来很容易,但不能使它工作。

我需要一个列表,它允许重复但从未一个逐个。

我有一个变量,值不断变化。计时器运行以检索其每秒才能将其添加到列表中。
恰好变量不会更改其时间长于一秒的时间,并且连续两个或更多相同的值。

我这样写了它,只有在最后一个不同的情况下添加值:

C#:
if (myVariable != myList[myList.Count-1])
myList.Add(myVariable);

但它一直在添加所有值。

我不确定,如果代码不正确或是变量内容更改太快。
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,732
地点
悉尼,澳大利亚
编程经验
10+
“Myvariable”的数据类型是什么?如果它是引用类型,那么两个实例可能看起来相同,但如果它们不是相同的对象,则它们不会被认为是相等的。

此外,虽然它不一定更有效地运行,但您可能会发现编写'mylist.last()'而不是'mylist.count - 1]'更直观。
 

CSQ.

新成员
加入
2016年9月26日
消息
4
编程经验
Beginner
我认为你是对的关于数据的参考类型。

该变量表示某些对象方法返回的值。

仍然,我的观点是将这些值存储到列表而不直接重复。如何实现这一目标?

如果是关于使用'mylist [mylist.count - 1]',我现在会出于某种原因与它留在它。
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,732
地点
悉尼,澳大利亚
编程经验
10+
我认为你是对的关于数据的参考类型。

我是对的还是不对的?我问数据类型是什么,因为我想知道数据类型是什么。你实际上并没有回答这个问题。数据来自哪里无关紧要。它是否是一个引用类型,即类或值类型,即结构或枚举。这是什么?
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,732
地点
悉尼,澳大利亚
编程经验
10+
在这种情况下,我无法看到您的代码无法正常工作的任何原因。你需要调试。只是阅读代码 - 特别只是代码片段 - 往往是不够的。它没有告诉您该代码段甚至正在执行代码,何时执行的路径执行或正在使用的数据。调试可以告诉你所有这些事情。
 

CSQ.

新成员
加入
2016年9月26日
消息
4
编程经验
Beginner
奇怪的部分是,当我从上面的“如果”条件“中打印出每个最后一个值 - 就在将其添加到列表后,只能打印正确的值。

打印出列表'count'或其内容显示还存储了冗余值。

好吧,我会望着它。感谢您的时间。


编辑:

我解决了它。让“如果'表达式'count-1',它已经前面是:

C#:
myList.Insert(0, zeroValue);

每次执行整个代码时,都会将“zeravalue”添加到列表中作为新元素,而不是被分配给'0'索引。
该值与“MyVariable”保持的值之一相同,因此它看起来像重复,而不是。
 
Last edited:
最佳 底部