2014-12-01 3 views
-6

간단한 오류 처리를 사용하고 있습니다. 그 밖의 모든 것을 가지고 있다고 생각합니다. 문을 확인하는 경우 값이이 배열과 같은지 확인하십시오.배열 내의 문자열 확인

String[] values = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" }; 

public String Value 
{ 
    get 
    { 
     return _value; 
    } 

    set 
    { 
     if (value != values) 
      throw new Exception("Invalid Card Value"); 
     _value = value; 
    } 
} 
+0

주어진 값이 배열에 * 포함되어 있는지 확인 하시겠습니까? – siride

+2

"값이이 배열과 같은지 확인하기 위해 if 문을 검사하는 방법은 무엇입니까?",'Value'는 문자열 유형이며 결코 문자열 배열과 같을 수 없습니다. 대신 'Value' 'if (! values.Contain (value)) '와 같은 배열에 포함되어 있습니다. 예외적 인 예외를 던지십시오. – Habib

+1

사이드 노트 - 바닐라 던지기 설정자의 예외는 나쁜 생각처럼 보입니다. 호출자는 예외를 올바르게 처리하는 방법을 알기 위해 메시지를 확인해야합니다. 클라이언트가 catch하고 특별히 처리 할 수있는 사용자 정의 예외를 던지거나 높은 수준에서 유효성 검사를 수행하십시오. –

답변

4

문자열을 문자열 배열과 비교하여 배열에 문자열이 있는지 확인할 수 없습니다. 당신은 배열을 통해 루프에 Contains 방법을 사용하고 값도 찾아보실 수 있습니다 :이 많은한다면

 set 
     { 
      if (!values.Contains(value)) { 
       throw new Exception("Invalid Card Value"); 
      } 
      _value = value; 
     } 

, 당신은 대신 배열의 HashSet<string>에 문자열을 넣어 고려할 수 있습니다. 배열보다 해시 집합에 값이 있는지 확인하는 것이 더 빠릅니다.

+0

왜 downvote? 당신이 잘못되었다고 생각하는 것이 무엇인지 설명하지 않는다면 대답을 향상시킬 수 없습니다. – Guffa