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'."

这让我摸不着头脑。如有任何帮助,不胜感激。

谢谢!

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

您遇到的问题是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));