2012-03-30 1 views

답변

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"로 시작하지 않습니다. –

+0

@ NiklasB. 감사! – Ian

+0

@lan 업데이트 됨 : 이제 조지의 답변과 동일합니다 ... –

1

?

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

} 
+0

"contains", "starts with"로 시작하지 않습니다. 또한'R' 다음의 문자는 숫자 여야합니다. –

+2

"Robin"의 경우 실패합니다. – Ian

8

이것은 use Regex

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

사실 '+'는 필요 없습니다. –

+0

좋은 점 Niklas –

+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

그가 모든 int에서 다른 액션을 수행해야하는 경우가 아니라면 – 2GDev

+0

그는 StartsWith가 아닌 'Contains'연산을 원합니다. – Ian

관련 문제