У меня есть цикл:
string[] lines = File.ReadAllLines(@"F:\VS Projects\Со звёздочкой\diceware.txt");
for ( int i = 0; i <= lines.Length; i++)
{
char[] textByCharacter = lines[i].ToCharArray();
int number = object1.CharacterCheck(textByCharacter[0]);
if (number == 1)
{
textBox1.AppendText(lines[i] + "\t\t");
}
if (number == 2)
{
textBox2.AppendText(lines[i] + "\t\t");
}
if (number == 3)
{
textBox3.AppendText(lines[i] + "\t\t");
}
if (number == 4)
{
textBox4.AppendText(lines[i] + "\t\t");
}
if (number == 5)
{
textBox5.AppendText(lines[i] + "\t\t");
}
if (number == 6)
{
textBox6.AppendText(lines[i] + "\t\t");
}
}
В этом цикле у меня по очереди заполняется каждый из шести textBox. Как реализовать, чтоб они заполнялись одновременно? Метод определения переменной number:
public int CharacterCheck(char character)
{
string symbol = System.Convert.ToString(character);
if (symbol == "1")
{
transmitsTheNumber = 1;
}
if (symbol == "2")
{
transmitsTheNumber = 2;
}
if (symbol == "3")
{
transmitsTheNumber = 3;
}
if (symbol == "4")
{
transmitsTheNumber = 4;
}
if (symbol == "5")
{
transmitsTheNumber = 5;
}
if (symbol == "6")
{
transmitsTheNumber = 6;
}
return transmitsTheNumber;
}
Во-первых, кучу однотипных if-else
можно оформить через switch-case
. Во-вторых, можно сделать лучше.
public int CharacterCheck(char character)
{
if (int.TryParse(character.ToString(), out int digit) && digit > 0 && digit < 7)
{
return digit;
}
return 0;
}
К символам в строке можно обращаться напрямую без преобразования в массив символов.
string[] results = Enumerable.Repeat(string.Empty, 6).ToArray(); // массив пустых строк
for (int i = 0; i < lines.Length; i++)
{
int number = object1.CharacterCheck(lines[i][0]);
if (number != 0)
results[number - 1] += lines[i] + "\t\t";
}
textBox1.Text = results[0];
textBox2.Text = results[1];
textBox3.Text = results[2];
textBox4.Text = results[3];
textBox5.Text = results[4];
textBox6.Text = results[5];
Многпоточные вычисления здесь имеют очень мало смысла, потому что, как вы сказали, 6000 строк - это очень мало, и выполнится очень быстро. Во-вторых здесь можно еще ускорить код. В-третьих у вас было 6000 обращений к текстбоксам, стало в 1000 раз меньше. И в-четвертых отрисовка формы может быть ускорена с помощью двойной буферизации.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть переменная Nickname типа string и десяток переменных типа intВсе они прекрасно записываются в реестр и там отображаются, но при попытке подгрузить...
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском
Как сделать управление для 2D персонажа в Unity на ПК, без двойного прыжка и с поворотом игрока в разные стороны
Напишите функцию, вычисляющую длину отрезка по координатам его концовС помощью этой функции напишите программу, вычисляющую периметр треугольника...