运算符'||'不能应用于类型的lambda前pression'的操作数和'拉姆达前pression“ [英] Operator '||' cannot be applied to operands of type 'lambda expression' and 'lambda expression'

查看:211
本文介绍了运算符'||'不能应用于类型的lambda前pression'的操作数和'拉姆达前pression“的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何构建一个LINQ WHERE 包含第

How do i construct a LINQ WHERE clause that contains OR?

我有对象的列表,并且我要回那些匹配搜索条件。

i have a list of objects, and i want to return those that match a search criteria.

所包含的对象有很多属性,只要的符合条件,我想退货:

The contained objects have many properties, and as long as any match the criteria, i want to return it:

IEnumerable<Item> list;
String keyword; 
...

var results = list.Where(
      (item => item.Name.Contains(keyword, StringComparison.CurrentCultureIgnoreCase))
      ||
      (item => item.Description.Contains(keyword, StringComparison.CurrentCultureIgnoreCase))
      ||
      (item => item.Description.Contains(keyword, StringComparison.CurrentCultureIgnoreCase))
      ||
      (item => item.ItemType.Contains(keyword, StringComparison.CurrentCultureIgnoreCase))
      ||
      (item => item.ItemID.ToString().StartsWith(keyword, StringComparison.CurrentCultureIgnoreCase))
      ||
      (items => items.Value.ToString().StartsWith(keyword, StringComparison.CurrentCultureIgnoreCase))
);

但是,这不能编译:

But that fails to compile:

运营商'||'不能应用于类型的lambda前pression'和'拉姆达前pression

Operator '||' cannot be applied to operands of type 'lambda expression' and 'lambda expression'

如何构建一个LINQ WHERE 包含第

How do i construct a LINQ WHERE clause that contains OR?

  • LINQ where or filter c#

推荐答案

只是做在同一个拉姆达前pression所有的测试...

Just do all your tests in the same lambda expression...

IEnumerable<Item> list;
String keyword; 
...

var results = list.Where(
      item => item.Name.Contains(keyword, StringComparison.CurrentCultureIgnoreCase)
      || item.Description.Contains(keyword, StringComparison.CurrentCultureIgnoreCase)
      || item.Description.Contains(keyword, StringComparison.CurrentCultureIgnoreCase)
      || item.ItemType.Contains(keyword, StringComparison.CurrentCultureIgnoreCase)
      || item.ItemID.ToString().StartsWith(keyword, StringComparison.CurrentCultureIgnoreCase)
      || items.Value.ToString().StartsWith(keyword, StringComparison.CurrentCultureIgnoreCase)
);

这篇关于运算符'||'不能应用于类型的lambda前pression'的操作数和'拉姆达前pression“的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆