.NET 4.x Информация с COM порта принимается, нужно передать в массив сортировать и сделать уникальными строки - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. Осуществляю приём информации с устройства на виртуальный COM-порт.
Листинг программы
  1. string InputData = null;
  2. delegate void SetTextCallback(string text);
  3. public Form1()
  4. {
  5. InitializeComponent();
  6. }
  7. private void SetText(string text)
  8. {
  9. if (this.richTextBox1.InvokeRequired)
  10. {
  11. SetTextCallback d = new SetTextCallback(SetText);
  12. this.richTextBox1.BeginInvoke(d, new object[] { text });
  13. }
  14. else
  15. {
  16. this.AddData(text);
  17. }
  18. }
  19.  
  20. private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
  21. {
  22. Thread.Sleep(300);
  23. byte[] data = new byte[port.BytesToRead];
  24. port.Read(data, 0, data.Length);
  25. InputData = Encoding.UTF8.GetString(data);
  26. if (InputData != String.Empty)
  27. {
  28. SetText(InputData);
  29. }
  30. }
  31. private void AddData(string text)
  32. {
  33. richTextBox1.AppendText(text);
  34. }
в RitchTextBox1 появляется текст вида(отсортировал сейчас, сам для понимания чтобы, принимаются в произвольном порядке строки в разнобой строки)
Листинг программы
  1. 20F 8 75 3
  2. 20F 8 75 30 27 10 40 00 3D 55
  3. 20F 8 75 30 27 10 40 00 3E 54
  4. 20F 8 75 30 27 10 40 00 3E 64
  5. 20F 8 75 30 27 10 40 00 3E 95
  6. 20F 8 75 30 27 10 40 00 3E 9E
  7. 211 8 F
  8. 211 8 FF FE 80 00 48 48 00
  9. 211 8 FF FE 80 00 48 48 00 54
  10. 211 8 FF FE 80 00 48 48 00 55
  11. 211 8 FF FE 80 00 48 48 00 9E
  12. 20F 8 75 3
  13. 20F 8 75 30 27 10 40 00 3D 55
  14. 20F 8 75 30 27 10 40 00 3E 54
  15. 20F 8 75 30 27 10 40 00 3E 64
  16. 20F 8 75 30 27 10 40 00 3E 95
  17. 20F 8 75 30 27 10 40 00 3E 9E
  18. 4B0 8 27 10 27 10 27 10
  19. 4B0 8 27 10 27 10 27 10 27 10
  20. 4DA 8 80 00 C0 00 00 00 00 00
  21. 4DA 8 80 00 C0 00 00 00 00 00
  22. 4DA 8 80 00 C0 00 00 00 00 00
  23. 4DA 8 80 00 C0 00 00 00 00 00
  24. 4DA 8 80 00 C0 00 00 00 00 00
  25. 4DA 8 80 00 C0 00 00 00 00 00
Это то что сделал и работает. Теперь вопрос. 1. Нужно отсортировать 2. Удалить одинаковые строки 3. Вывести подготовленные сортированные строки и уже уникальные строки(без повторов одинаковых строк) Решение вижу такое, поместить принятые строки в массив, в цикле произвести сортировку и сравнение строк. Вот написал код ниже, чувствую решение очень близко, но никак не могу поймать идею в коде. Подскажите пожалуйста ?
Листинг программы
  1. private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
  2. {
  3. Thread.Sleep(300);
  4. byte[] data = new byte[port.BytesToRead];
  5. port.Read(data, 0, data.Length);
  6. string[] content = new string[InputData.Length];
  7. for (int i = 0; i < InputData.Length; ++i)
  8. {
  9. // вот тут честно говоря затрудняюсь,
  10. // как сортировать и сравнить, далее подготовить переменную string для вывода в RichTextBox
  11. }
  12. }

Решение задачи: «.NET 4.x Информация с COM порта принимается, нужно передать в массив сортировать и сделать уникальными строки»

textual
Листинг программы
  1. port.NewLine = Environment.NewLine;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы