-1

contains メソッドを使用して、リスト内の特定の値をチェックするのに問題があります。正しく機能していないようです。おそらく、スペースを含む文字列値をチェックする別の方法があります。

例えば:

  string test = "Hello Stack Person";

  if(test.ToLower().Contains("hello stack person"))
  {
    //code to execute
  }

しかし、私の if 文が通らないのですが、私は何か間違っていますか?

ありがとう!

4

3 に答える 3

3

まず、空白と思われる文字が本当に空白かどうかを確認する必要があります。それらが非改行スペースである場合、投稿したような単純な比較は機能しません。Unicode にはより多くの可能性があると思いますが、ほとんどの場合、これでうまくいくはずです。

if (test.ToLower().Replace('\u00A0', ' ').Contains("hello stack person"))
{
    // code
}

テキストを適切にレンダリングするためにのみ使用される非改行スペースを、このように処理する必要がある理由がわかりません。それにもかかわらず、私はそのような問題に一度遭遇しましたが、比較していた両方の文字列が同じように見えたため、何が問題であるかを理解するのに少し時間がかかりまし

于 2013-07-04T09:00:57.580 に答える
0

スペースを削除するには、trim() を使用します。

リストを使用している場合は、Select

var selection = list.Select(x => x.ToString()
                .Trim().ToLower() == "hello stack person");

true または false の使用を取得するにはAny

var result = list.Any(x => x.ToString()
                .Trim().ToLower() == "hello stack person");
于 2013-07-04T07:48:31.913 に答える
0

あなたが何と呼んでいるのかわかりませんlist。文字列の char 配列を意味する場合は、次を使用しますString.IndexOf

string test = "Hello Stack Person";
bool contains = test.IndexOf("hello stack person", StringComparison.OrdinalIgnoreCase) >= 0;

ToLower大文字と小文字を区別せずに比較するために使用しないでくださいStringComparison

参照:あなたのコードはトルコのテストに合格していますか?

于 2013-07-04T08:04:21.667 に答える