2013-03-14 4 views
3

문자열의 마지막 문자를 알려진 값 목록과 비교하려고합니다. 알려진 값 중 하나라도 종료 문자와 일치하면 플래그를 설정합니다. 나는 한 캐릭터 대 그것을하는 법을 알았지 만, 그것을하는 방법과리스트를 찾는 방법을 생각할 수는 없다. 누구든지 도와 줄 수 있습니까? 이 하나의 문자에 대해 완벽하게 작동, 다시목록에서 끝 문자 비교

StringBuilder myGrade = new StringBuilder(); 

// then I pull some data, calculate some stuff, give a grade, build the string, etc. The resulting text can vary, but the grade letter will always be last. 

var goodGrades = new List<string> { "A", "B", "C" }; 
string endStr = myGrade.ToString(); 
endStr = endStr.Substring(Math.Max(0, endStr.Length - 1)); 
if (endStr == "A") 
    //do some stuff for passing grades 
else 
    //do some other stuff for failing grades 

...하지만 난 goodGrades 목록의 각 항목을 검사에 대해 어떻게 갈 것 : 여기 내 코드는 지금까지입니까? 정규 표현식 가능성이 있습니까? 도움에 미리 감사드립니다.

+0

당신이 하나의 문자 작동 무엇을 의미합니까 사용할 수 있습니까? 여러 문자에 대한 사용 사례를 보여줄 수 있습니까? – James

답변

5
if(goodGrades.Contains(endStr)) 
{ 
    //Do something. 
} 

또한이 기능은 문자에도 적용됩니다. 그리고 한 캐릭터를 비교하려고한다면 더 좋은 방법입니다.

//Create a list of chars instead of strings 
List<char> goodGrades = new List<char>(){'A', 'B', 'C'}; 
//Get the last char of your string by index 
char endChar = myGrade.ToString()[myGrade.Length - 1]; 

//See if char is contained in list of chars 
if(goodGrades.Contains(endChar)) 
{ 
    //Do something 
} 
+0

고맙습니다. 나는 여전히 배우기 때문에 그것이 간단해야한다는 것을 알았다. 뮈스 그라시아 스! – Jeagr

+1

내 편집을 확인하십시오. 이 경우에 더 나은 방법이 있습니다. – Corylulu

1

msdn

if (goodGrades.Contains(endStr)) 
    do something 
else 
+0

'endStr'은 마지막 문자 여야합니다. 그렇지 않으면 작동하지 않습니다. – Anirudha

+0

도움을 주셔서 감사합니다. – Jeagr

2

그냥 List.Contains

if (goodGrades.Contains(endStr)) { 
    ... 
} 
+0

감사합니다. 나는 여전히 배우기 때문에 그것이 간단해야한다는 것을 알았다. 뮈스 그라시아 스! – Jeagr

+0

'endStr'은 end char ...이어야합니다. – Anirudha

+0

@The_Land_Of_Devils_SriLanka OP 코드에 'endChar'가 없습니다. – JaredPar