Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WinForms文本框中的换行符_C#_Regex_Winforms - Fatal编程技术网

C# WinForms文本框中的换行符

C# WinForms文本框中的换行符,c#,regex,winforms,C#,Regex,Winforms,我在处理断线时遇到了一些麻烦。基本上,用户将一些数据放入文本框,然后直接保存到数据库中 当我在程序中显示数据时,我只想显示文本框的第一行,所以我尝试了 Regex newLine = new Regex("/[\r\n]+/"); String[] lines = newLine.Split(row[data.textColumn.ColumnName].ToString()); SomeLabel.Text = lines[0]; 但是它会一行一行地显示给我,所以如果用户输入 a b c

我在处理断线时遇到了一些麻烦。基本上,用户将一些数据放入文本框,然后直接保存到数据库中

当我在程序中显示数据时,我只想显示文本框的第一行,所以我尝试了

Regex newLine = new Regex("/[\r\n]+/");
String[] lines = newLine.Split(row[data.textColumn.ColumnName].ToString());
SomeLabel.Text = lines[0];
但是它会一行一行地显示给我,所以如果用户输入

a
b
c
将显示标签

abc
我如何才能让它工作,使它只显示第一行

var data = row[data.textColumn.ColumnName].ToString();
其中一个(都可以使用unix和windows行分隔符)。第一个是最快的,因为当您只使用第一个时,它不会分割每一行

int min = Math.Min(data.IndexOf("\r\n"), data.IndexOf("\n"));

string line;

if (min != -1)
    line = data.Substring(0, min);
else
    line = data;

(另请参阅我在这里发布的一些扩展方法:)

(我在另一个答案中添加了这一点,因为这个答案相当大,我认为这将使这条线索更加清晰-如果我应该给出一个答案,请留下评论)

我提出了这种扩展方法,这种方法通常有其用途:

public static IEnumerable<string> Lines(this string data)
{
    using (var sr = new StringReader(data))
    {
        string line;

        while ((line = sr.ReadLine()) != null)
            yield return line;
    }
}

当只使用一部分行时,这应该比
.Split
快得多。

为什么要按行[data.textColumn.ColumnName].ToString()进行拆分?是否需要正则表达式中的第一个和最后一个斜杠?斜杠是正则表达式的分隔符,这就是您编写它的方式,还是我弄错了?
public static IEnumerable<string> Lines(this string data)
{
    using (var sr = new StringReader(data))
    {
        string line;

        while ((line = sr.ReadLine()) != null)
            yield return line;
    }
}
var line = data.Lines().First();