2012-03-30 8 views
0

..String.Contains int?私は、コードのこの部分を書く方法を疑問に思って

私が言いたいというのが私のフォルダの名前が含まれている場合はR + INT(R1、R52など)は、その後、私はアクションを行うものは何でも。

これは私が使用しようとするものである:

if(f.Name.Contains("R" + int)) 
{ 

} 
+4

のint型ではなく、フォーマット..ですあなたが使用することができます正規表現か、おそらく2番目の文字が数字の場合はチェックしますか? – gbianchi

答えて

1
if (f.Name.Contains ("R" + Convert.ToString(i))) 
{ 
    // Your code here 
} 
+0

これは最初の回答とほぼ同じです。 –

2

は、int型の文字列表現を使用しますか?

if(f.Name.Contains("R" + i.ToString())) 
{ 

} 

または任意の整数に一致させますか?あなたはそれのための正規表現を実行する必要があります。おそらく、式として "R \ d +"だけです。

+0

'i'は先験的に知られています。任意の数です。 –

+2

'ToString()'は必要ありません。 – CodesInChaos

+0

前のコードから取得した特定のintと一致するものとして読んでいます。おそらく私は間違っていた。 –

2

は、正規表現を使用してみてください:

if(Regex.IsMatch(f.Name, "R[0-9]")) 
{ 
    // This will only execute if the String starts with R 
    // and is followed by 1 or more numbers 
} 
+0

"contains"、 "starts with"ではありません。 @ NiklasB。 –

+0

ありがとう! – Ian

+0

@lan:Georgeの答えと同じです... –

1

これは何について?

if(r.Name.StartsWith("R")) 
{ 

} 
+0

"〜で始まる"ではなく、 "contains"。 'R'の後の文字も数値でなければなりません。 –

+2

これは "Robin"のために失敗します – Ian

8

これはuse Regex

if(Regex.IsMatch(f.Name, @"R\d")) { 
    ... 
} 
+0

実際には '+'は必要ありません。 –

+0

良い点ニクラス –

+0

@Msonic - 上記の正規表現は、「これはRは、数字の直後に含まれている」と言い、本当に、\ D +は本当に悪い考えです\ dのでしょうではない –

0

それとも、スイッチを使用することができますに良い時間です:

string caseSwitch = f.Name; 
switch (caseSwitch) 
{ 
    case "R1": 
     Console.WriteLine("Case R1"); 
     break; 
    case "R2": 
     Console.WriteLine("Case R2"); 
     break; 
    default: 
     Console.WriteLine("Default case"); 
     break; 
} 
+0

成功する条件がないない、それ彼はすべての彼はまた、「含む」操作を、望んでいる – Ian

+0

を持っていませんSTARTSWITH – 2GDev

+0

をint型に異なる行動をしなければならなかった場合ではない何のスケーラビリティ – Ian

関連する問題