我有一个多行文本框,文字类似于:
Tester Testman
None
None
18 Test Court
Upper Test
QLD 4000
我试图删除单词None
的所有行,我尝试过以下操作:
private void TextBoxShippingLabel_TextChanged(object sender, TextChangedEventArgs e)
{
TextBoxShippingLabel.Text = TextBoxShippingLabel.Text.Replace("None", null);
}
然而,不是删除线条而是将它们留空,所以它看起来如下:
Tester Testman
18 Test Court
Upper Test
QLD 4000
如何更改我的代码以删除仅包含单词" None"完全?我想要的输出是:
Tester Testman
18 Test Court
Upper Test
QLD 4000
答案 0 :(得分:3)
这是一个简单的代码片段:
private void UnwantedNoneRemover(TextBox textBox) {
var lines = textBox.Lines;
var updatedLines = new List<string>();
foreach (var line in lines) {
if (line != "None") { updatedLines.Add(line); }
}
textBox.Lines = updatedLines.ToArray();
}
答案 1 :(得分:2)
TextBoxShippingLabel.Text = string.Join(System.Environment.NewLine,TextBoxShippingLabel.Text.Split(new Char[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries).Where(x=>x!="None"));
答案 2 :(得分:1)
支持那些&#34;无&#34;除了换行符之外,行可以包含空格,您可以使用:
Regex regExp = new Regex(@"None[\s]*" + System.Environment.NewLine);
TextBoxShippingLabel.Text = regExp.Replace(TextBoxShippingLabel.Text,"");
正则表达式无[\ s] *查找无字后跟零个或多个空格。连接System.Environment.NewLine用于删除换行符。
不要忘记添加引用:)
using System.Text.RegularExpressions;