-5

私は文字列を持っています

String input = "nbfs;jlt;\"";

この文字列では、.Contains<>() を使用します

if (input.Contains<String>("nbfs;jlt;"))
{
    Console.WriteLine("True");
}

また

 if (input.Contains("nbfs;jlt;"))
    {
        Console.WriteLine("True");
    }

動作しません。上記の if ステートメントが false を返すのはなぜですか?

4

4 に答える 4

3

input.Contains<String>("nbfs;jlt;")文字列の列挙を期待しています。

使用する:input.Contains("nbfs;jlt;")

編集
多くのコメントに応じて、.Contains<T>メソッドは標準文字列でコンパイルされません:

string input = "nbfs;jlt;";
input.Contains<String>("nbfs;jlt;") // this will never compile

この.Contains<T>メソッドは、次のような種類の列挙可能な入力をコンパイルすることを想定しています。

input.Select( x => x.ToString() ).Contains<String>( "nbfs;jlt;" )

OPがコードがコンパイルされたと言っていることを考えると、新しいコンソールプロジェクトを開いて最初から始めることをお勧めします。すべてを入力し、コピー/貼り付けしないでください。

補足: ファイルからコピー/貼り付けを行うと、奇妙なエンティティ文字が隠されている可能性があります。これが、Contains メソッドが文字列に対して機能しない理由の 1 つかもしれません。

編集 2
これにより、サンプル文字列に基づいてコンパイルされ、true が返されます。これをコピーしてコンソール アプリに貼り付けます。既定のアセンブリ以外のアセンブリをコンソール アプリに含めないようにしてください。

string input = "nbfs;jlt;\"";

bool isContained = input.Contains( "nbfs;jlt;" );

Console.WriteLine( isContained );
于 2012-12-13T21:02:19.887 に答える
2

.Contains<String>使用している何らかの拡張メソッドがない限り、これはコンパイルされませんか? これはおそらくあなたが知らないカスタムクラスですか?

文字列の組み込みの内容を使用する必要がありますinput.Contains("string");

于 2012-12-13T20:57:51.877 に答える
0

削除<String>して使用するだけです:if (input.Contains("nbfs;jlt;"))

于 2012-12-13T21:03:11.660 に答える
0

String.Contains はジェネリック メソッドではないため、型パラメーターを指定する必要はありません。

代わりにこれを試してください。

if (input.Contains("nbfs;jlt;"))
{
    Console.WriteLine("True");
}
于 2012-12-13T21:03:41.410 に答える