扩展方法:

扩展方法是C#3.0的新特性,可以通过为已知类型添加新方法来到到扩展类型的目的,同时不需对此类型做任何改动。

重点记住的是,定义为静态方法的扩展方法只能在通过using指令显示地将名称空间导入到应用程序代码中后才能被调用。

LINQ包含最常见的扩展方法,也就是所说的标准查询操作符。标准查询操作符扩展了IEnumerable<T>和IQueryable两种类型。

代码中需要使用实例方法来调用扩展方法,然后编译器产生的中间语言(IL)会把代码转换成为对静态方法的调用。

如果一定要使用扩展方法,牢记下面几点:

1.如果定义的扩展方法同在该类型中已经存在的方法具有相同的名称,那么此扩展方法将永远不会调用。(方法不要重名)。

2.扩展方法仅在命名空间的层次上才能被引入并得以使用。

代码奉上(结合上一篇)

public static class MyExtensions
{
public static bool IsValidEmail(this string email)
{
Regex exp = new Regex(@"^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$");
return exp.IsMatch(email);
}
}

DataContext context = new DataContext(connectionString);
Table<Contack> contacts = context.GetTable<Contack>();
var query = from s in contacts.AsEnumerable()
select new { s.EmailAddress };
foreach (var item in query)
{
if (item.EmailAddress.IsValidEmail())//这里调用了一下上面写的扩展方法
{
System.Console.WriteLine(item.EmailAddress);//这里就是筛选后的email
}

}

LinqToSQL2的更多相关文章

随机推荐

  1. 2018-2019-2 20175227张雪莹《Java程序设计》实验四 《Android程序设计》

    2018-2019-2 20175227张雪莹<Java程序设计> 实验四 <Android程序设计> 实验报告封面 课程:Java程序设计 班级:1752班 姓名:张雪莹 学 ...

  2. 【软件工程】Beta冲刺(4/5)

    链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 新增数据分析展示等功能API 服务器后端部署,API接口的beta版实现 展示 ...

  3. session cookie傻傻分不清

    做了这么多年测试,还是分不清什么是cookie,什么是session?很正常,很多初级开发工程师可能到现在都搞不清什么是session,cookie相对来说会简单很多. 下面这篇文章希望能够帮助大家分 ...

  4. httpClinent工具类

    package com.juchn.gateway.common.utils; import java.io.BufferedReader; import java.io.IOException; i ...

  5. Flutter移动电商实战 --(6)dio基础_Get_Post请求和动态组件协作

    上篇文章中,我们只看到了 dio 的使用方式,但并未跟应用关联起来,所以这一篇将 dio 网络请求与应用界面结合起来,当然这也是为以后的实战作基础准备,基础打牢,我们才能飞速前进. 1.案例说明 我们 ...

  6. mysql数据库学习

    1,服务端和客户端 MySQL 包括服务端和客户端,服务端是MySQL server,客户端包括命令行客户端和图形用户客户端: 命令行客户端:mysql,mysqladmin,mysqldump  ( ...

  7. LinearLayout线性布局

    作用 : 线性布局会将容器中的组件一个一个排列起来, LinearLayout可以控制组件横向或者纵向排列, 通过android:orientation属性控制; 不换行属性 : 线性布局中的组件不会 ...

  8. Pattern Evaluation

    对相关性patten质量的常用分析指标有以下这些 其中,X^2 跟 lift不是null-invariant的,也就是说当~A~B项较多时,这两个指标不是很可靠. 据Jiawei Han所言,Kulc ...

  9. 小马哥-Java 微服务实践 - Spring Boot 系列-01Java 微服务实践 - Spring Boot 系列(一)初体验

    课程github地址 https://github.com/mercyblitz/segmentfault-lessons 传统的web应用架构.微服务是一种架构.不限定什么语言 单体应用和微服务的对 ...

  10. salt收集windows服务器日志时间

    定义收集时间区间: time.ps1 $a = get-date $b = $a.adddays(-) $c = $b.tostring('yyyy-MM-dd') $d = get-date -fo ...