3

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

@ViewBag.Options.Contains('q')

但它给了我一个错误说:

'string.Contains(string)' 的最佳重载方法匹配有一些无效参数。

4

4 回答 4

11

它是这样写的:string.Contains没有只占用一个字符的重载。

选项:

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