3

文字列の最後の文字を既知の値のリストと比較しようとしています。既知の値のいずれかが最後の文字と一致する場合は、フラグを設定します。1つの文字に対してそれを行う方法を理解しましたが、リストに対してそれを行う方法を理解できないようです。誰でも助けることができますか?これまでの私のコードは次のとおりです。

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

msdn

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