文字列に文字が含まれているかどうかを調べようとしています。ViewBag.Options が文字列の場合、次のことを試しました。
@ViewBag.Options.Contains('q')
しかし、次のようなエラーが表示されます。
'string.Contains(string)' に最もよく一致するオーバーロードされたメソッドには、無効な引数が含まれています。
文字列に文字が含まれているかどうかを調べようとしています。ViewBag.Options が文字列の場合、次のことを試しました。
@ViewBag.Options.Contains('q')
しかし、次のようなエラーが表示されます。
'string.Contains(string)' に最もよく一致するオーバーロードされたメソッドには、無効な引数が含まれています。
write:string.Contains
には、1 文字だけのオーバーロードはありません。
オプション:
@ViewBag.Options.Contains("q")
@ViewBag.Options.IndexOf('q') != -1
Any
) - 実行可能ですが、ここでは必要ありません。(私は必要に応じて LINQ のファンですが、それがここでの正しいアプローチだとは思いません。コードにラムダ式を導入するためだけにラムダ式を導入することはしません)それらのいずれかを使用します
@ViewBag.Options.Contains("q");
@ViewBag.Options.Any(x => x == 'q');
あなたが主張するなら
@ViewBag.Options.Contains('q'.ToString());
エラーは一目瞭然です。のパラメーターは.Contains
文字列を受け取り、このメソッドのオーバーロードは文字を受け取りません。
C# で一重引用符を使用すると、文字を示します。
二重引用符で試してください:
@ViewBag.Options.Contains("q");
これを使って:
@ViewBag.Options.Contains("q")