Можно ли оптимизировать приведенный код - 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);
}