为了账号安全,请及时绑定邮箱和手机立即绑定

“string[]”不包含“Contains”的定义

“string[]”不包含“Contains”的定义

C#
慕哥6287543 2021-11-21 10:43:03
完整的错误代码:错误 CS1929 'string[]' 不包含 'Contains' 的定义,并且最佳扩展方法重载 'Queryable.Contains(IQueryable, TSource)' 需要类型为 'IQueryable' 的接收器  string[] terms = new string[31];我正在尝试查看数组中是否包含我的 Excel 文件中的内容。(使用互操作)if (terms.Contains(xlWorkSheet.Cells[1, i1 + 1].Value.ToString())) ;{}为什么包含在这里不起作用?我进行了搜索,显然,这与类型不同有关,但在这种情况下,确实如此。它们都是字符串。
查看完整描述

3 回答

?
Helenr

TA贡献1780条经验 获得超4个赞

Array( string[]) 实现IList所以应该有Contains(object o)方法。但是实现是显式的,这意味着只有当类被视为接口时才能访问该方法:

if (((IList)terms).Contains(xlWorkSheet.Cells[1, i1 + 1].Value.ToString()))


查看完整回答
反对 回复 2021-11-21
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

有一种扩展方法System.Linq.Enumerable.Contains

string[]是一个IEnumerable<string>所以你可以使用它。

添加using System.Linq;到文件顶部以使用它。

https://msdn.microsoft.com/en-us/library/system.linq.enumerable.contains(v=vs.110).aspx


查看完整回答
反对 回复 2021-11-21
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

您可以使用Array.Exists并传递比较 lambda 表达式:


if (Array.Exists(terms, elem => elem == xlWorkSheet.Cells[1, i1 + 1].Value.ToString()))

{

    ...

}


查看完整回答
反对 回复 2021-11-21
  • 3 回答
  • 0 关注
  • 1331 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信