首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“string[]”不包含“包含”的定义

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

Stack Overflow用户
提问于 2018-08-08 18:43:53
回答 6查看 20.4K关注 0票数 4

完整的错误代码:

错误CS1929 'string[]‘不包含“包含”的定义,最好的扩展方法重载'Queryable.Contains(IQueryable,TSource)’需要一个'IQueryable‘类型的接收方。

代码语言:javascript
运行
复制
  string[] terms = new string[31];

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

代码语言:javascript
运行
复制
if (terms.Contains(xlWorkSheet.Cells[1, i1 + 1].Value.ToString())) ;
{

}

为什么Contains不在这里工作?

我搜索了,显然,这与类型不一样有关,但在这种情况下,是这样的。他们都是弦乐。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2018-08-08 19:15:11

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

代码语言:javascript
运行
复制
if (((IList)terms).Contains(xlWorkSheet.Cells[1, i1 + 1].Value.ToString()))
票数 9
EN

Stack Overflow用户

发布于 2018-08-08 18:56:47

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

票数 4
EN

Stack Overflow用户

发布于 2018-08-08 18:50:11

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

代码语言:javascript
运行
复制
if (Array.Exists(terms, elem => elem == xlWorkSheet.Cells[1, i1 + 1].Value.ToString()))
{
    ...
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51753654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档