LINQ Any()参数与参数数据类型的问题
本文关键字:参数 数据类型 问题 LINQ Any | 更新日期: 2023-09-27 18:03:44
我有一个具有字符串类型参数的对象,名为'baan_cat_fam_code'。下面的代码是我试图在查询中找到具有baan_cat_fam_code的所有项目,这些项目存在于称为catFamCd的通用字符串列表中。
query = query.Where(r => r.baan_cat_family_code.Any(s => catFamCode.Contains(s)));
问题是这不会编译-我得到一个错误,声明
"Argument type 'char' is not assignable to parameter type 'string'"
由于某种原因,谓词s类型为char。因此,我将. tostring ()附加到中的参数。包含方法。但是,当代码运行时,当查询的结果绑定到一个列表框时,会抛出以下异常:
"The argument 'value' was the wrong type. Expected 'System.Char'. Actual 'System.String'."
这让我摸不着头脑。如有任何帮助,不胜感激。
谢谢!
您遇到的问题是baan_cat_family_code
是实现IEnumerable<char>
的string
类型。当你调用Any
时,它实际上是在说
- 对于
string
中的
char
,谓词是否为真?你真正想问的是
-
catFamCode
列表中是否包含
string
试试下面这个
query = query.Where(r => catFamCode.Contains(r.baan_cat_family_code));
你在一个字符串上调用Any()
,该字符串查看它的元素是chars
,因此出现错误。
你应该这样做:
query = query.Where(r => catFamCode.Contains(r.baan_cat_family_code));