Можно ли оптимизировать приведенный код - C#

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

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

Понимаю, что нужно создать ещё одно измерение массива, но боюсь, что я уже и в этом запутался.
Листинг программы
  1. ...
  2. byte[] mac10 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xFA, 0xD5 }; //30-85-A9-A0-FA-D5
  3. byte[] mac1 = new byte[] { 0xC8, 0x60, 0x00, 0xC5, 0xC1, 0xDF }; //C8-60-00-C5-C1-DF
  4. byte[] mac2 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x1D }; //30-85-A9-A0-DF-1D
  5. byte[] mac3 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x1E }; //30-85-A9-A0-DF-1E
  6. byte[] mac4 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x2E }; //30-85-A9-A0-DF-2E
  7. byte[] mac5 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x21 }; //30-85-A9-A0-FA-21
  8. byte[] mac6 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x1C }; //30-85-A9-A0-FA-1C
  9. byte[] mac7 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x28 }; //30-85-A9-A0-FA-28
  10. byte[] mac8 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x20 }; //30-85-A9-A0-FA-20
  11. ...
  12. private void button1_Click(object sender, EventArgs e)
  13. {
  14. UdpClient client = new UdpClient();
  15. client.Connect(IPAddress.Broadcast, 40000);
  16. byte[] packet10 = new byte[17 * 6];
  17. byte[] packet1 = new byte[17 * 6];
  18. byte[] packet2 = new byte[17 * 6];
  19. byte[] packet3 = new byte[17 * 6];
  20. byte[] packet4 = new byte[17 * 6];
  21. byte[] packet5 = new byte[17 * 6];
  22. byte[] packet6 = new byte[17 * 6];
  23. byte[] packet7 = new byte[17 * 6];
  24. byte[] packet8 = new byte[17 * 6];
  25. for (int i = 0; i < 6; i++)
  26. {
  27. packet10[i] = 0xFF;
  28. packet1[i] = 0xFF;
  29. packet2[i] = 0xFF;
  30. packet3[i] = 0xFF;
  31. packet4[i] = 0xFF;
  32. packet5[i] = 0xFF;
  33. packet6[i] = 0xFF;
  34. packet7[i] = 0xFF;
  35. packet8[i] = 0xFF;
  36. }
  37. for (int i = 1; i <= 16; i++)
  38. for (int j = 0; j < 6; j++)
  39. {
  40. packet10[i * 6 + j] = mac10[j];
  41. packet1[i * 6 + j] = mac1[j];
  42. packet2[i * 6 + j] = mac2[j];
  43. packet3[i * 6 + j] = mac3[j];
  44. packet4[i * 6 + j] = mac4[j];
  45. packet5[i * 6 + j] = mac5[j];
  46. packet6[i * 6 + j] = mac6[j];
  47. packet7[i * 6 + j] = mac7[j];
  48. packet8[i * 6 + j] = mac8[j];
  49. }
  50. client.Send(packet10, packet10.Length);
  51. client.Send(packet1, packet10.Length);
  52. client.Send(packet2, packet10.Length);
  53. client.Send(packet3, packet10.Length);
  54. client.Send(packet4, packet10.Length);
  55. client.Send(packet5, packet10.Length);
  56. client.Send(packet6, packet10.Length);
  57. client.Send(packet7, packet10.Length);
  58. client.Send(packet8, packet10.Length);
  59. }

Решение задачи: «Можно ли оптимизировать приведенный код»

textual
Листинг программы
  1.             byte[][] macs = new byte[9][] {
  2.                 new byte[]  { 0x30, 0x85, 0xA9, 0xA0, 0xFA, 0xD5 }, //30-85-A9-A0-FA-D5
  3.                 new byte[]  { 0xC8, 0x60, 0x00, 0xC5, 0xC1, 0xDF }, //C8-60-00-C5-C1-DF
  4.                 new byte[]  { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x1D }, //30-85-A9-A0-DF-1D
  5.                 new byte[]  { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x1E }, //30-85-A9-A0-DF-1E
  6.                 new byte[]  { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x2E }, //30-85-A9-A0-DF-2E
  7.                 new byte[]  { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x21 }, //30-85-A9-A0-FA-21
  8.                 new byte[]  { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x1C }, //30-85-A9-A0-FA-1C
  9.                 new byte[]  { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x28 }, //30-85-A9-A0-FA-28
  10.                 new byte[]  { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x20 }, //30-85-A9-A0-FA-20
  11.             };
  12.  
  13.             byte[][] packets = new byte[9][];
  14.  
  15.             for (int i = 0; i < 9; i++)
  16.             {
  17.                 packets[i] = new byte[17 * 6];
  18.  
  19.                 for (int j = 0; j < 6; j++)
  20.                 {
  21.                     packets[i][j] = 0xFF;
  22.                 }
  23.             }
  24.  
  25.             for (int i = 0; i < 9; i++)
  26.             {
  27.                 for (int j = 1; j <= 16; j++)
  28.                 {
  29.  
  30.                     for (int k = 0; k < 6; k++)
  31.                     {
  32.                         packets[i][j * 6 + k] = macs[i][k];
  33.                     }
  34.                 }
  35.             }
  36.  
  37.             UdpClient client = new UdpClient();
  38.  
  39.             for (int l = 0; l < 9; l++)
  40.             {
  41.                 client.Send(packets[l], packets[l].Length);
  42.             }

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


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

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

11   голосов , оценка 4.182 из 5

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

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

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