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 列表中的每个项目?有正则表达式的可能性吗?在此先感谢您的帮助。

4

3 回答 3

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
}
于 2013-03-14T16:53:17.850 回答
2

只需使用List.Contains

if (goodGrades.Contains(endStr)) { 
  ...
}
于 2013-03-14T16:53:29.893 回答
1

微软

if (goodGrades.Contains(endStr))
  do something
else
于 2013-03-14T16:53:24.917 回答