猿问

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

完整的错误代码:


错误 CS1929 'string[]' 不包含 'Contains' 的定义,并且最佳扩展方法重载 'Queryable.Contains(IQueryable, TSource)' 需要类型为 'IQueryable' 的接收器


  string[] terms = new string[31];

我正在尝试查看数组中是否包含我的 Excel 文件中的内容。(使用互操作)


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

{


}

为什么包含在这里不起作用?


我进行了搜索,显然,这与类型不同有关,但在这种情况下,确实如此。它们都是字符串。


慕哥6287543
浏览 1332回答 3
3回答

Helenr

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

慕莱坞森

有一种扩展方法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

守着星空守着你

您可以使用Array.Exists并传递比较 lambda 表达式:if (Array.Exists(terms, elem => elem == xlWorkSheet.Cells[1, i1 + 1].Value.ToString())){&nbsp; &nbsp; ...}
随时随地看视频慕课网APP
我要回答