我有一个具有字符串类型参数的对象,名为'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'"出于某种原因,谓词的被键入为char。因此,我将.ToString()附加到.Contains方法中的参数中。但是,当代码运行时,当查询的结果绑定到列表框时,会引发以下异常。
"The argument 'value' was the wrong type. Expected 'System.Char'. Actual 'System.String'."这让我抓挠了头。如能提供任何协助,将不胜感激。
谢谢!
发布于 2011-07-28 15:46:56
您遇到的问题是,baan_cat_family_code是string类型的,它实现了IEnumerable<char>。当你打电话给Any时,本质上是这么说的
对于string中的任何char,
但你真正想问的是
catFamCode列表中的
string尝试以下哪种方法可以实现后者?
query = query.Where(r => catFamCode.Contains(r.baan_cat_family_code));发布于 2011-07-28 15:48:22
您正在对一个字符串调用Any(),该字符串查看其元素chars,因此出现了错误。
你应该做的是:
query = query.Where(r => catFamCode.Contains(r.baan_cat_family_code));https://stackoverflow.com/questions/6861801
复制相似问题