-2

我有一个多行文本框,我可以将任何文本项的列表粘贴到其中,如下所示:

555-555-1212
I want's a lemon's.
google.com
1&1 Hosting

我旁边还有一个文本框,我可以添加逗号分隔的字符串,我想从列表中的所有项目中删除这些字符串,如下所示:

-,$,!,@,#,$,%,^,&,*,(,),.com,.net,.org

我试图弄清楚如何从我的文本框列表中的每个字符串中清除每个字符串(或我放入第二个文本框中的任何其他字符串)。

有任何想法吗?我知道如何将列表放入列表字符串,但不确定如何清理该字符串。

这是我到目前为止所拥有的......但我得到了红色的波浪线:

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();
}
4

2 回答 2

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&1 托管

于 2012-12-18T08:21:11.213 回答
1

String.Replace在不需要列表中的每个字符串上使用Textbox.Lines.

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 不支持它)

于 2012-12-18T08:21:35.990 回答