-2

次のように、任意のテキスト項目のリストを貼り付けることができる複数行のテキスト ボックスがあります。

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

また、次のように、リスト内のすべてのアイテムから削除したいカンマ区切りの文字列を追加できるテキスト ボックスが横にあります。

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

テキストボックスリストの各文字列から、これらの各文字列(または2番目のテキストボックスに入れた他の文字列)をスクラブする方法を見つけようとしています。

何か案は?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();
}
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 Hosting

于 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 (ideone がサポートしていないため、Windows コントロールなし)

于 2012-12-18T08:21:35.990 に答える