我有一个如下代码段:
var results = business.Where(b => b.Description.ToLower().Contains(request.ServiceName.ToLower()));
var bb = results.Where(r => !r.Zip.Contains('-'));
当我运行这个时,我在标题中收到一条错误消息。我的查询返回了我定义的复杂类型,以及其中一个属性'那种复杂的类型是:
public string Zip { get; set; }
我想排除zip部分中不包含破折号的所有条目。
答案 0 :(得分:3)
它应该是双引号...包含(“ - ”)。
var bb = results.Where(r => !r.Zip.Contains("-"));
此外,如果您只关心最终结果,可以将两个where子句合并为一个。
var results = business.Where(b =>
b.Description.ToLower().Contains(request.ServiceName.ToLower()) &&
!b.Zip.Contains("-"));
仅供参考: 如果使用实体框架,则不需要ToLower()
。
答案 1 :(得分:2)
假设这是一个实体框架查询,Char不是基本类型,因此是错误。试试var bb = results.Where(r => !r.Zip.Contains("-"));
在此处找到类似的(重复):Why does this LinQ query not like chars?