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

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

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

Понимаю, что нужно создать ещё одно измерение массива, но боюсь, что я уже и в этом запутался.
...
 
        byte[] mac10 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xFA, 0xD5 }; //30-85-A9-A0-FA-D5
        byte[] mac1 = new byte[] { 0xC8, 0x60, 0x00, 0xC5, 0xC1, 0xDF }; //C8-60-00-C5-C1-DF
        byte[] mac2 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x1D }; //30-85-A9-A0-DF-1D
        byte[] mac3 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x1E }; //30-85-A9-A0-DF-1E
        byte[] mac4 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x2E }; //30-85-A9-A0-DF-2E
        byte[] mac5 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x21 }; //30-85-A9-A0-FA-21
        byte[] mac6 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x1C }; //30-85-A9-A0-FA-1C
        byte[] mac7 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x28 }; //30-85-A9-A0-FA-28
        byte[] mac8 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x20 }; //30-85-A9-A0-FA-20
 
...
 
       private void button1_Click(object sender, EventArgs e)
        {
            UdpClient client = new UdpClient();
            client.Connect(IPAddress.Broadcast, 40000);
            byte[] packet10 = new byte[17 * 6];
            byte[] packet1 = new byte[17 * 6];
            byte[] packet2 = new byte[17 * 6];
            byte[] packet3 = new byte[17 * 6];
            byte[] packet4 = new byte[17 * 6];
            byte[] packet5 = new byte[17 * 6];
            byte[] packet6 = new byte[17 * 6];
            byte[] packet7 = new byte[17 * 6];
            byte[] packet8 = new byte[17 * 6];
            for (int i = 0; i < 6; i++)
            {
                packet10[i] = 0xFF;
                packet1[i] = 0xFF;
                packet2[i] = 0xFF;
                packet3[i] = 0xFF;
                packet4[i] = 0xFF;
                packet5[i] = 0xFF;
                packet6[i] = 0xFF;
                packet7[i] = 0xFF;
                packet8[i] = 0xFF;
            }
            for (int i = 1; i <= 16; i++)
                for (int j = 0; j < 6; j++)
                {
                    packet10[i * 6 + j] = mac10[j];
                    packet1[i * 6 + j] = mac1[j];
                    packet2[i * 6 + j] = mac2[j];
                    packet3[i * 6 + j] = mac3[j];
                    packet4[i * 6 + j] = mac4[j];
                    packet5[i * 6 + j] = mac5[j];
                    packet6[i * 6 + j] = mac6[j];
                    packet7[i * 6 + j] = mac7[j];
                    packet8[i * 6 + j] = mac8[j];
                }
            client.Send(packet10, packet10.Length);
            client.Send(packet1, packet10.Length);
            client.Send(packet2, packet10.Length);
            client.Send(packet3, packet10.Length);
            client.Send(packet4, packet10.Length);
            client.Send(packet5, packet10.Length);
            client.Send(packet6, packet10.Length);
            client.Send(packet7, packet10.Length);
            client.Send(packet8, packet10.Length);
        }

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

textual
Листинг программы
            byte[][] macs = new byte[9][] {
                new byte[]  { 0x30, 0x85, 0xA9, 0xA0, 0xFA, 0xD5 }, //30-85-A9-A0-FA-D5
                new byte[]  { 0xC8, 0x60, 0x00, 0xC5, 0xC1, 0xDF }, //C8-60-00-C5-C1-DF
                new byte[]  { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x1D }, //30-85-A9-A0-DF-1D
                new byte[]  { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x1E }, //30-85-A9-A0-DF-1E
                new byte[]  { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x2E }, //30-85-A9-A0-DF-2E
                new byte[]  { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x21 }, //30-85-A9-A0-FA-21
                new byte[]  { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x1C }, //30-85-A9-A0-FA-1C
                new byte[]  { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x28 }, //30-85-A9-A0-FA-28
                new byte[]  { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x20 }, //30-85-A9-A0-FA-20
            };
 
            byte[][] packets = new byte[9][];
 
            for (int i = 0; i < 9; i++)
            {
                packets[i] = new byte[17 * 6];
 
                for (int j = 0; j < 6; j++)
                {
                    packets[i][j] = 0xFF;
                }
            }
 
            for (int i = 0; i < 9; i++)
            {
                for (int j = 1; j <= 16; j++)
                {
 
                    for (int k = 0; k < 6; k++)
                    {
                        packets[i][j * 6 + k] = macs[i][k];
                    }
                }
            }
 
            UdpClient client = new UdpClient();
 
            for (int l = 0; l < 9; l++)
            {
                client.Send(packets[l], packets[l].Length);
            }

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


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

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

11   голосов , оценка 4.182 из 5
Похожие ответы