我有一个多行文本框,我可以粘贴任何文本项的列表,如下所示:
555-555-1212
I want's a lemon's.
google.com
1&1 Hosting
我旁边还有一个文本框,我可以添加逗号分隔的字符串,我想从列表中的所有项目中删除它们,如下所示:
-,$,!,@,#,$,%,^,&,*,(,),.com,.net,.org
我试图弄清楚如何从我的文本框列表中的每个字符串中擦除这些字符串中的每一个(或者我放在第二个文本框中的任何其他字符串)。
有什么想法吗?我知道如何将List放入List-string,但不知道如何擦除该字符串。
这就是我到目前为止所做的......但是我得到的是红色的波浪形:
List<string> removeChars = new List<string>(textBox6.Text.Split(','));
for (int i = 0; i < sortBox1.Count; i++)
{
sortBox1[i] = Regex.Replace(sortBox1[i], removeChars, "").Trim();
}
答案 0 :(得分:3)
private void button1_Click(object sender, EventArgs e)
{
string[] lines = new string[] { "555-555-1212", "I want's a lemon's.", "google.com", "1&1 Hosting" };
string[] removables = textBox1.Text.Split(',');
string[] newLine = new string[lines.Count()];
int i = 0;
foreach (string line in lines)
{
newLine[i] = line;
foreach (string rem in removables)
{
while(newLine[i].Contains(rem))
newLine[i] = newLine[i].Remove(newLine[i].IndexOf(rem), rem.Length);
}
MessageBox.Show(newLine[i]);
i++;
}
}
结果:
<强> 5555551212
我想要一个柠檬
googlecom
1&amp; 1主持
答案 1 :(得分:1)
对Textbox.Lines
中每一行的不受欢迎列表中的每个字符串使用String.Replace
。
string[] replaceStrings = txtUnwanted.Text.Split(',');
List<string> lines = new List<string>(textBox1.Lines);
for (int i = 0; i < lines.Count; i++)
foreach (string repl in replaceStrings)
lines[i] = lines[i].Replace(repl, "");
编辑:这是一个演示:http://ideone.com/JQl79k(没有Windows控件,因为ideone不支持它)