C# Lambda表达式Contains方法 like

本文介绍了Lambda表达式中Contains方法的使用技巧及其等效SQL like操作。详细讲解了适用于字符串类型数据的Contains、StartsWith及EndsWith方法,并强调了在进行模糊查询前须检查NULL值的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文: Lambda表达式Contains方法 like

1、使用Contains方法的必备条件:

Contains等价于SQL中的like语句。不过Contains只针对于字符串(string)类型的数据而言。如果是int等数值类型,则不会有Contains方法的存在,因此数值字段貌似无法通过使用Lambda表达式来完成like操作。因此在使用实体框架的同时,设计数据的时候如果想使用like请确保数据库字段为字符串类型(text、varchar等)。否则在想模糊查询的时候让你痛苦不堪。

2、Contains方法关联方法(均等价于SQL中的like[注意:这里为什么会说是等价呢,因为如下列出的方法均为Stirng里的方法。like的应用是不分字符类型的,数值行亦可]):

Contains等价于like '%key%' 指示指定的 String 对象是否出现在此字符串中。

EndsWith等价于like '%key' 确定此字符串实例的结尾是否与指定的字符串匹配。

StartsWith等价于like 'key%'  确定此字符串实例的开头是否与指定的字符串匹配。

3、使用Contains方法时前往不要忘记非NULL的判断:

写这边文章的原因来自,今天在使用Contains来做查询的时候,一直报错(未将对象引用设置到对象的实例。)。

一开始百思不得其解,经过跟踪和调试最后才发现数据库中如果存在值为NULL的值。

为什么会报错,看看如下的代码,想必大家也就知道其中的所以然了。
string str = null;
str.Contains("报错啦");//这里会报“未将对象引用设置到对象的实例。”错

因此不要忘记将代码

o.SearchKeyword.Contains("查询条件")

改写为:

o.SearchKeyword != null && o.SearchKeyword.Contains(("查询条件")

### C# Lambda表达式语法 在C#中,Lambda表达式是一种用于创建匿名函数的简洁方式。它的基本语法如下: ```csharp (parameters) => expression ``` 其中,`parameters`是输入参数列表,`expression`是返回值的表达式。如果需要多行代码,可以使用大括号 `{}` 包裹,并且需要显式地使用 `return` 语句返回值。 ### 使用示例 #### 示例1:筛选偶数 下面是一个使用Lambda表达式筛选出偶数的示例: ```csharp using System; using System.Collections.Generic; using System.Linq; class Program { static void Main() { List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // 使用Lambda表达式筛选出偶数 List<int> evenNumbers = numbers.Where(x => x % 2 == 0).ToList(); // 输出筛选结果 Console.WriteLine("Even numbers:"); foreach (int num in evenNumbers) { Console.Write(num + " "); } } } ``` #### 示例2:带返回值的Lambda表达式 下面是一个带返回值的Lambda表达式的示例: ```csharp Func<int, int, int> add = (a, b) => a + b; int result = add(3, 5); Console.WriteLine(result); // 输出 8 ``` 在这个例子中,`add` 是一个委托,它接受两个整数并返回它们的和[^2]。 ### Lambda表达式的应用场景 - **LINQ查询**:Lambda表达式经常与LINQ查询一起使用,提供查询条件、排序等功能。 - **委托和事件处理**:Lambda表达式是匿名方法的简洁替代,特别适用于事件处理、回调和异步编程等场景。 - **集合操作**:如在 `List<T>.ForEach`、`Where`、`Select` 等操作中使用[^2]。 ### Lambda运算符 所有的Lambda表达式都是用新的Lambda运算符 `=>`,可以叫它“转到”或者“成为”。运算符将表达式分为两部分,左边指定输入参数,右边是Lambda的主体[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值