4

重複の可能性:
C#のifステートメントを実行する簡単な方法はありますか?

私はこのコードを持っています:

while ((txtSource.Text[startPos].ToString() == " ") || 
       (txtSource.Text[startPos].ToString() == ",") || 
       (txtSource.Text[startPos].ToString() == ".")))
        {
            // do something
        }

たとえば、上記のようにする方法はありますか?

while (!txtSource.Text[startPos].ToString() in (" ",",","."))
4

4 に答える 4

7
while ((new char[] {' ', ',', '.'}).Contains(txtSource.Text[startPos]))
于 2012-07-06T13:53:59.010 に答える
5

LINQAny()ヘルプ:

string text = "some text";
char[] controlChars = { ' ', ',', '.' };
int index = 1;
bool passed = controlChars.Any(c => c == text[index]);
于 2012-07-06T13:52:47.433 に答える
4
string[] SearchList =  {" ",",","."};

while (SearchList.Contains(txtSource.Text[startPos].ToString() ))
{
   // Do Something
}
于 2012-07-06T13:53:07.387 に答える
4
private static bool IsStopChar(char c)
{
  switch (c)
  {
    case ' ':
    case ',':
    case '.':
      return false;
    default:
      return true;
  }
}

//...

  while (!IsStopChar(txtSource.Text[startPos]))
  {
    //...
  }

With this solution you avoid collection iteration, memory allocation, initialization,... Modifying cases remains easy.

于 2012-07-06T13:56:17.300 に答える