Как реализовать очистку старой информации из "логового" textBox, к примеру с выше 1000 строк или, там, больше 20 000 символов, не теряя свежие данные?
То есть в textBox1 добавляются (textBox1.AppendText(text + "\n");
) все комментарии о работе, спустя какое-то время, в нем может быть пару тысяч строк, но при этом важны только данные о последних действиях. Как счищать лишнее?
Linq однострочник (неффективно, зато просто и коротко)
myTextBox.Text = myTextBox.Text
.Split(new[] {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries)
.Reverse()
.Take(3) // сколько вам надо с конца строк
.Reverse()
.Aggregate(new StringBuilder(), (acc,s)=>acc.AppendLine(s))
.ToString();
Примерно так:
if (textBox.Lines.Length > 1000)
{
var index = textBox.Text.IndexOf(Environment.NewLine);
textBox.Text = textBox.Text.Remove(0, index + Environment.NewLine.Length);
}
textBox.AppendText(text + Environment.NewLine);
Или можно взять ListBox
вместо TextBox
. С ним код будет выглядеть так:
if (listBox.Items.Count > 1000)
{
listBox.Items.RemoveAt(0);
}
listBox.Items.Add(text);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Я получил все топики, которые относятся к указанному форуму следующим путём:
Так я получу путь до файла, который передам в аргументА как наоборот, получить объект ассета, указав путь до него? Ну как то вроде того
Создаю ASP NET Core MVC приложение, использую Bootstrap есть три элемента div, нужно вывести все элементы в цикле в один ряд