首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LINQ ()参数与参数数据类型问题

LINQ ()参数与参数数据类型问题
EN

Stack Overflow用户
提问于 2011-07-28 15:44:20
回答 2查看 1.3K关注 0票数 7

我有一个具有字符串类型参数的对象,名为'baan_cat_fam_code'.。下面的代码是我试图在查询中查找存在于名为baan_cat_fam_code catFamCd的通用字符串列表中的所有项的代码。

代码语言:javascript
复制
query = query.Where(r => r.baan_cat_family_code.Any(s => catFamCode.Contains(s)));

问题是,这不会编译-我得到一个错误,声明

代码语言:javascript
复制
"Argument type 'char' is not assignable to parameter type 'string'"

出于某种原因,谓词被键入为char。因此,我将.ToString()附加到.Contains方法中的参数中。但是,当代码运行时,当查询的结果绑定到列表框时,会引发以下异常。

代码语言:javascript
复制
"The argument 'value' was the wrong type. Expected 'System.Char'. Actual 'System.String'."

这让我抓挠了头。如能提供任何协助,将不胜感激。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-28 15:46:56

您遇到的问题是,baan_cat_family_codestring类型的,它实现了IEnumerable<char>。当你打电话给Any时,本质上是这么说的

对于string中的任何char

  • 都是真谓词。

但你真正想问的是

catFamCode列表中的

  • string

尝试以下哪种方法可以实现后者?

代码语言:javascript
复制
query = query.Where(r => catFamCode.Contains(r.baan_cat_family_code));
票数 13
EN

Stack Overflow用户

发布于 2011-07-28 15:48:22

您正在对一个字符串调用Any(),该字符串查看其元素chars,因此出现了错误。

你应该做的是:

代码语言:javascript
复制
query = query.Where(r => catFamCode.Contains(r.baan_cat_family_code));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6861801

复制
相关文章

相似问题

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