3

文字列に文字が含まれているかどうかを調べようとしています。ViewBag.Options が文字列の場合、次のことを試しました。

@ViewBag.Options.Contains('q')

しかし、次のようなエラーが表示されます。

'string.Contains(string)' に最もよく一致するオーバーロードされたメソッドには、無効な引数が含まれています。

4

4 に答える 4

11

write:string.Containsには、1 文字だけのオーバーロードはありません。

オプション:

  • 使用する@ViewBag.Options.Contains("q")
  • 使用する@ViewBag.Options.IndexOf('q') != -1
  • より複雑な LINQy アプローチを使用します (例: Any) - 実行可能ですが、ここでは必要ありません。(私は必要に応じて LINQ のファンですが、それがここでの正しいアプローチだとは思いません。コードにラムダ式を導入するためだけにラムダ式を導入することはしません)
  • より複雑な正規表現のアプローチを使用してください - 繰り返しますが、意味がありません。
于 2012-05-26T06:41:25.087 に答える
1

それらのいずれかを使用します

  • @ViewBag.Options.Contains("q");
  • @ViewBag.Options.Any(x => x == 'q');

あなたが主張するなら

  • @ViewBag.Options.Contains('q'.ToString());

エラーは一目瞭然です。のパラメーターは.Contains文字列を受け取り、このメソッドのオーバーロードは文字を受け取りません。

于 2012-05-26T06:41:34.003 に答える
1

C# で一重引用符を使用すると、文字を示します。

二重引用符で試してください:

@ViewBag.Options.Contains("q");
于 2012-05-26T06:42:33.207 に答える
1

これを使って:

@ViewBag.Options.Contains("q")
于 2012-05-26T06:42:54.757 に答える