2011-03-15 25 views
0

私のコードでは、明示的にサーバー名を指定していますが、サーバー名を暗黙指定する必要があります。したがって、暗黙的にサーバー名を取るコードを&から削除すると、\\ & \nが削除されます。サーバー名から文字を削除する

//Write output while removing `\\` and `\n` 
Console.WriteLine(
    string.Join(",", input.Split(',').ToList() 
      .Select(serverName => serverName 
       .Replace("\\", "") 
       .Replace("\n", "")) 
      .ToArray())); 

あなたはより正確な必要がある場合は、より正確に一致させるためにRegex.Replace()正規表現の代わり.Replace()を使用することができます:ここにあなたの質問を編集した結果として、新しい情報に照らして

System.Diagnostics.Process p = new System.Diagnostics.Process(); 
p.StartInfo.FileName = "cmd "; 
p.StartInfo.UseShellExecute = false; 
p.StartInfo.Arguments = "/C net view"; 
char[] delimiterChars = { '\\' }; 
string input = "\\st1\n,\\st10\n,\\st4\n,\\st5"; 
List<string> serverNames = input.Split(',').ToList(); 
Console.WriteLine(input); 
Console.ReadLine(); 
+0

あなたは*暗黙のうち*とはどういう意味ですか? –

答えて

1

は、あなたの答えですコントロール。それは強く型付けされた以外も

Listは、動的配列の一種です。

さらに、あなたの例では、delimiterCharsと宣言されたchar配列がありますが、どこにも使用していません。例に含まれていない場合は、それを含めないでください。これは、あなたが達成しようとしているものに人を混乱させるためです。

0

あなたが何を求めているのか分かりません。私の推測が正しければしかし、これはあなたが

string[] serverNames = new string[4]; 
serverNames[0] = "\\st1"; 
serverNames[1] = "\\st10"; 
serverNames[2] = "\\st4"; 
serverNames[3] = "\\st5"; 

\nnewlineになり、\\は、私はあなたがについて言っているのか理解していない単一\

2

に変わることに注意してください必要なものかもしれ"ダイナミックアレイ"ですが、私はあなたがしようとしているものを得ると思います。ここにあなたの入力を分割し、リード\\または\nを付けずにすべての要素のリストを返しますいくつかのコードです:

List<string> serverNames = input.Split(',') 
           .Select(s => { 
            if (s.StartsWith(@"\\")) 
             s = s.Substring(2); 
            if (s.EndsWith("\n")) 
             s = s.Substring(0, s.Length - 1); 
            return s; 
           }) 
           .ToList(); 
+0

+1ご理解の為*何かありません* –

+0

@Kman:それは全く*何も*ではありません - 同じユーザーが同じ質問をしました(http://stackoverflow.com/questions/5307814/how-to-create-dynamic-array-in-c)何か*一部。 – Gabe

+0

Gabe、これは、 'if(s.StartsWith(@" \\ "))'を 'if(s.StartsWith(" \\ ")) 'に変更すると、現在の "@"と一致しません。 – 7wp

関連する問題