Один из способов добиться этого - сохранить значения в Dictionary
. Есть и другие коллекции, которые вы могли бы использовать, но преимущество Dictionary
в этом случае заключается в том, что вы можете использовать Ticks
объекта DateTime
, чтобы помочь поддерживать порядок сортировки, если это необходимо, а также найти момент времени, когда значение был возвращен.
Ваш код может выглядеть так:
Dictionary<long, string> dataInDict = new Dictionary<long, string>();
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
dataIn = serialPort1.ReadExisting();//working
var ticks = DateTime.Now.Ticks;
dataInDict.Add(ticks, dataIn);
this.Invoke(new EventHandler(displayData));//working
}
Объект Dictionary
«dataInDict» должен быть объявлен на уровне класса.
Вы можете выполнять итерацию, хотя Dictionary
как:
foreach (var key in dataInDict.Keys)
{
var dateTime = new DateTime(key);
var value = dataInDict[key];
Console.WriteLine($"At: {dateTime} value: {value}");
}