Harshal Patil Ответов: 2

Как бы я сохранил данные, сгенерированные из таймера, в список.


float mag = вычисленное сопротивление(счетчик-1, счетчик-2);

richTextBox2. Text + = "\n расстояние объекта от радара= " + mag.ToString ()+ "\TObject Location in Degree= " +ObjectAngle;

я хочу сохранить "mag "и" ObjectAngle " в списке, чтобы я мог использовать его, когда захочу.
Вышеуказанные данные генерируются с помощью таймера каждые 2 секунды.

Что я уже пробовал:

List<dataanalyse> ObjectData = new List<dataanalyse>();     
struct DataAnalyse
         {
             public float Avgmag;
             public float AvgmagAngle; 

         }       

         
Public saveData()
{
DataAnalyse da=new DataAnalyse()
da.Avgmag=mag;
da.AvgmagAngle=ObjectAngle;
}

Sergey Alexandrovich Kryukov

Что вы подразумеваете под словом" список"?
Вот подсказка: используйте систему.Коллекции.Универсальный.Список< и GT;.
Не используйте нетипизированные типы данных. Не используйте строки, представляющие данные вместо данных.
—СА

Harshal Patil

не понял тебя?
я хочу сохранить свой mag и objectAngle как минимум на следующие 10 итераций, поэтому мне нужен список для добавления данных в список.
я использовал список и пытался добавить, но дал мне ошибку.

Sergey Alexandrovich Kryukov

Вы ответите на мой вопрос? Что это за тип, "список"?
Что именно неясно в моем комментарии выше?
—СА

ZurdoDev

Какой у вас вопрос? Я не понимаю, чего вы от нас хотите.

Harshal Patil

Я использую struct List.

Patrice T

Вам нужно подробно объяснить использование этих данных. Решение зависит от точного использования.

Harshal Patil

Пока мой таймер работает, я генерирую два плавающих данных "mag"и " ObjectAngle".
я хочу сохранить эти данные вместе.
пример mag=5, ObjectAngle=10.
если я попрошу objectAngle=10, то получу mag=5.
Как мне это сделать?

2 Ответов

Рейтинг:
19

OriginalGriff

Попробуйте просто немного изменить сохраненные данные:

public saveData(float mag, float objAngle)
    {
    DataAnalyse da=new DataAnalyse();
    da.Avgmag=mag;
    da.AvgmagAngle=objAngle;
    ObjectData.Add(da);
    }

Вам также нужно будет правильно указать регистры в объявлении ObjectData - C# чувствителен к регистру, поэтому "dataanalyse" - это не то же самое, что "DataAnalyse"


Harshal Patil

Спасибо.Его работа

Harshal Patil

Приведенный выше код сохраняет все сгенерированные данные в списке.
Пример
Маг-4512,4125,2365,4857,1256....
ObjectAngle-125,132,142,121,112....

если я хочу сделать 4857-4512?
как я должен пройти?

OriginalGriff

Возможно, вам придется объясниться получше - я не совсем понимаю, что вы имеете в виду.
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - все, с чем мы работаем, это именно то, что Вы нам говорите; у нас нет контекста для вашего проекта в целом.

Рейтинг:
0

Patrice T

Насколько я понимаю, ваш таймер будет непрерывно записывать данные, и вам нужно сохранить последние n данных.
В этом случае список неэффективен, потому что вы постоянно добавляете новые данные и удаляете самые старые. Есть структура под названием "круговой буфер" и "буфер", что более эффективно.

ФИФО (компьютерная техника и электроника) материал из Википедии - свободной энциклопедии[^]
Реализация буфера FIFO[^]