使用.Contains检查字符串是否包含字符时出错

时间:2012-05-26 06:38:58

标签: c# asp.net-mvc asp.net-mvc-3

我试图找出一个字符串是否包含一个字符。我尝试了以下内容 其中ViewBag.Options是一个字符串:

@ViewBag.Options.Contains('q')

但它给我一个错误说:

最好的重载方法匹配' string.Contains(string)'有一些无效的论点。

4 个答案:

答案 0 :(得分:11)

并写道:string.Contains只有一个字符没有重载。

选项:

  • 使用@ViewBag.Options.Contains("q")
  • 使用@ViewBag.Options.IndexOf('q') != -1
  • 使用一些更复杂的LINQy方法(例如Any) - 可行,但这里没有必要。 (我是LINQ 的粉丝,但我不认为这是正确的方法;我不会为了它而开始在我的代码中引入lambda表达式)
  • 使用一些更复杂的正则表达式方法 - 再次,没有意义。

答案 1 :(得分:1)

使用其中任何一个

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

如果你坚持

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

错误是不言自明的。 .Contains的参数符号接受一个字符串,此方法的重载不会占用一个字符。

答案 2 :(得分:1)

在c#中使用单引号表示一个字符。

尝试使用双引号:

@ViewBag.Options.Contains("q");

答案 3 :(得分:1)

使用此:

@ViewBag.Options.Contains("q")