C# 保存更新变量C的数据

C# 保存更新变量C的数据,c#,.net,C#,.net,我有一个叫做in_data的变量,它每秒钟更新一次。我想将此数据保存到数组或列表中。无法定义接收的数据数。我有没有办法保存这些不确定数量的数据 例如,假设in_数据变量有11个数据值更改。我想存储所有这些数据,以便在以后的操作中使用这些数据 先谢谢你 in_data=myport.ReadLine myCollection=新列表 myCollection.Addin_数据 但这只保存数据的最后一个实例,我希望保存接收到的所有数据您可以使用列表对象。 将其定义为: List<string&

我有一个叫做in_data的变量,它每秒钟更新一次。我想将此数据保存到数组或列表中。无法定义接收的数据数。我有没有办法保存这些不确定数量的数据

例如,假设in_数据变量有11个数据值更改。我想存储所有这些数据,以便在以后的操作中使用这些数据

先谢谢你

in_data=myport.ReadLine

myCollection=新列表

myCollection.Addin_数据

但这只保存数据的最后一个实例,我希望保存接收到的所有数据

您可以使用列表对象。 将其定义为:

List<string> list = new List<string>();

目前还不清楚in_数据是如何更新的。但假设您有权访问该代码,您可以创建一个属性而不是in_数据,如下所示:

public readonly List<string> in_data_history = new List<string>();

public string in_data
{
     get {return in_data_history.Last();}
     set {in_data_history.Add(value);}
}

此属性的getter将返回in_数据的最后一个值。setter会将所有新值存储在\u数据\u历史记录中。

您可以在\u数据字符串中读取所有行:

in_data = myport.ReadToEnd();
也可以使用循环:

myCollection = new List(); 
while ((in_data = myport.ReadLine()) != null)
{
    myCollection.Add(in_data);
}

我想你是用单词表说的…显示相关代码。解释一下你尝试了什么。你能给我们更多的细节和你尝试做什么的代码示例吗。您在添加到列表或什么方面有问题吗?在\u数据中是什么类型?在\u数据中是StringI类型如果我在您所在的位置,我不会使用linq扩展方法Last来获取值。它获得的时间与集合中元素的名称成比例。您应该将当前值放在不同的变量中。in_data=myport.ReadLine;这是更新in_数据的方式sir@KirillBestemyanov:列表已经知道它的长度,Last的无参数版本不需要对每个元素执行检查,因此,我希望它在T1而不是TN中执行。不幸的是,它没有提到它的性能。@user2766227:如果您可以用上面的代码替换in_数据的定义,则in_数据历史记录中的列表将跟踪in_数据的所有值。这是因为每当调用in_data=myport.ReadLine时,就会调用上面定义的setter,将最新值添加到in_data_历史记录中。@Can Bud:原因列表没有Last方法,它将用作IEnumerable接口的扩展方法。因此,它将继续工作。我现在看一下这个方法的实现。是的,但这只保存了in_数据的最后一个实例,,,我想保存所有接收到的数据,每当你用myport.ReadLine获得新值时;您只需使用list.Add方法将该值添加到列表中。一次只能创建一次列表。
myCollection = new List(); 
while ((in_data = myport.ReadLine()) != null)
{
    myCollection.Add(in_data);
}