使用C#从列表中删除不需要的字符

时间:2012-12-18 08:07:15

标签: c# arrays list trim

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

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

2 个答案:

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