在发生可预期的错误之前停止循环

时间:2018-10-29 11:48:00

标签: c# wpf split textbox

所以我需要计算文本框中的行数,为此我要使用:

if (subject.Length <= 20)
{
    bool moreLines = true;
    int onLine = 2;
    int count = 0;

    while (moreLines)
    {
        textBody[count] = TextBox_Text.Text.Split('\n')[onLine];
        Console.WriteLine("Line saved: " + textBody[count]);

        onLine++;
        count++;

        try
        {
            if (TextBox_Text.Text.Split('\n')[onLine] == null)
            {

            }
        }
        catch (IndexOutOfRangeException)
        {
            moreLines = false;
        }

    }

    return true;
}

我将拆分的字符串插入textBody[]数组中,但是一旦我到达没有文本的最后几行,我就希望循环停止。我试图做一个if语句,检查下一行是否为空,如果是,则停止循环。但是,我一直得到IndexOutOfRangeException,所以我只是将整个过程放在了一个try catch中,但是我觉得这样做会有更简单的方法?

3 个答案:

答案 0 :(得分:2)

我认为您可能已经解决了很多复杂的问题。
String.Split方法有多个重载,其中一些重载以StringSplitOptions枚举的成员作为参数-其中一个成员称为None,另一个成员称为{{1} }-据我了解,您所需要做的就是:

RemoveEmptyEntries

答案 1 :(得分:0)

执行此操作的一种简单方法是仅使用以下内容:

TextBox_Text.Text.Split('\n').Length

Length属性返回数组的长度。

答案 2 :(得分:0)

所以我只是使用LineCount属性,然后与onLine进行了比较

if (TextBox_Text.LineCount >= onLine)
{
    moreLines = false;
}