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

And*_*ans 7 c# linq

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

query = query.Where(r => r.baan_cat_family_code.Any(s => catFamCode.Contains(s)));
Run Code Online (Sandbox Code Playgroud)

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

"Argument type 'char' is not assignable to parameter type 'string'"
Run Code Online (Sandbox Code Playgroud)

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

"The argument 'value' was the wrong type. Expected 'System.Char'. Actual 'System.String'."
Run Code Online (Sandbox Code Playgroud)

这让我摸不着头脑.任何帮助将不胜感激.

谢谢!

Jar*_*Par 13

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

  • 是谓语真正用于任何char在此string

你真正想要问的是

  • 这是string在列表中catFamCode

尝试以下后者

query = query.Where(r => catFamCode.Contains(r.baan_cat_family_code));
Run Code Online (Sandbox Code Playgroud)