2013-03-14 48 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 2013-03-14 16:54:40

回答

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

谢谢。我仍然在学习,所以我知道它一定很简单。 Muchas Gracias! – Jeagr 2013-03-14 16:57:04

+1

看看我的编辑。这是为这种情况做更好的方法。 – Corylulu 2013-03-14 16:57:24

1

msdn

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

'endStr'应该是最后一个字符。否则它将不起作用 – Anirudha 2013-03-14 17:00:59

+0

谢谢你的帮助。 – Jeagr 2013-03-14 17:05:18

2

只需使用List.Contains

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

谢谢。我仍然在学习,所以我知道它一定很简单。 Muchas Gracias! – Jeagr 2013-03-14 16:57:20

+0

'endStr'应该结束char..right! – Anirudha 2013-03-14 16:58:47

+0

@The_Land_Of_Devils_SriLanka OP代码中没有'endChar' – JaredPar 2013-03-14 17:02:04