将结束字符与列表进行比较

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列表中的每个项目?是否有正则表达式的可能性?提前感谢您的帮助。


你的意思是它只适用于单个字符吗?你能展示一下多个字符的使用案例吗? - James
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
}

谢谢。我还在学习,所以我知道它一定很简单。非常感谢! - Jeagr
1
看看我的修改。针对这种情况,有一个更好的方法。 - corylulu

2

只需使用 List.Contains

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

谢谢。我还在学习,所以我知道它必须很简单。非常感谢! - Jeagr
@The_Land_Of_Devils_SriLanka 在 OP 代码中没有 endChar - JaredPar

1

{{链接1:msdn}}

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接