我有一个带有字符串类型参数的对象,名为“ 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()附加到 .Contains 方法中的参数。但是,当代码运行时,当查询结果绑定到列表框时,我会抛出以下异常。
"The argument 'value' was the wrong type. Expected 'System.Char'. Actual 'System.String'."
这让我摸不着头脑。非常感谢任何帮助。
谢谢!
答案 0 :(得分:13)
您遇到的问题是baan_cat_family_code
类型string
实现了IEnumerable<char>
。当你致电Any
时,它基本上是在说
char
string
的谓词是否为真
你真正想要问的是
string
catFamCode
尝试以下后者
query = query.Where(r => catFamCode.Contains(r.baan_cat_family_code));
答案 1 :(得分:2)
你在一个字符串上调用Any()
,该字符串查看其chars
的元素,因此出错。
你应该做的:
query = query.Where(r => catFamCode.Contains(r.baan_cat_family_code));