Изучение нескольких методов получения строки из строки TextBox в C#

В C# обработка пользовательского ввода из текстового поля — обычная задача во многих приложениях. Получить строку из определенной строки в TextBox можно несколькими способами. В этой статье мы рассмотрим несколько методов и примеры кода для выполнения этой задачи.

Метод 1: использование свойства Lines
Элемент управления TextBox в C# предоставляет свойство Lines, которое возвращает массив строк, представляющих каждую строку текста в TextBox. Чтобы получить строку из определенной строки, вы можете получить доступ к нужному индексу массива Lines.

string GetLineText(int lineIndex)
{
    string[] lines = textBox.Text.Split(Environment.NewLine);

    if (lineIndex >= 0 && lineIndex < lines.Length)
    {
        return lines[lineIndex];
    }

    return string.Empty; // Line index out of range
}
// Usage
int targetLineIndex = 2;
string lineText = GetLineText(targetLineIndex);

Метод 2: использование методов GetLineFromCharIndex и GetLineLength
Другой подход заключается в использовании методов GetLineFromCharIndex и GetLineLength, предоставляемых элементом управления TextBox. Эти методы позволяют определить индекс строки и длину конкретной строки на основе индекса символа.

string GetLineText(int lineIndex)
{
    int startIndex = textBox.GetFirstCharIndexFromLine(lineIndex);
    int lineLength = textBox.GetLineLength(startIndex);

    if (startIndex >= 0 && lineLength > 0)
    {
        return textBox.Text.Substring(startIndex, lineLength);
    }

    return string.Empty; // Line index out of range
}
// Usage
int targetLineIndex = 2;
string lineText = GetLineText(targetLineIndex);

Метод 3: использование регулярных выражений
Если вам нужно более сложное сопоставление с образцом или манипулирование текстом строки, вы можете использовать регулярные выражения. Пространство имен System.Text.RegularExpressions в C# предоставляет классы и методы для работы с регулярными выражениями.

using System.Text.RegularExpressions;
string GetLineText(int lineIndex)
{
    string[] lines = textBox.Text.Split(Environment.NewLine);

    if (lineIndex >= 0 && lineIndex < lines.Length)
    {
        string lineText = lines[lineIndex];

        // Apply regular expression pattern matching or manipulation
        // Example: Extract all uppercase words from the line
        MatchCollection matches = Regex.Matches(lineText, @"\b[A-Z]+\b");
        string result = string.Join(" ", matches);

        return result;
    }

    return string.Empty; // Line index out of range
}
// Usage
int targetLineIndex = 2;
string lineText = GetLineText(targetLineIndex);

Извлечение строки из строки TextBox можно выполнить с помощью различных методов C#. Используя свойство Lines, методы GetLineFromCharIndex и GetLineLength или регулярные выражения, вы можете извлечь нужный текст строки в соответствии с вашими конкретными требованиями.