文档章节

Linq快速入门——扩展方法

 木宛城主
发布于 2015/03/02 19:39
字数 316
阅读 6
收藏 0

Linq为我们提供了许多扩展方法,方便我们对数据源进行操作(Where,Select...)。即使你不了解算法,也能使用Linq当回牛人。扩展方法本质并不是什么高深的技术,说白了就是一个Static静态方法。

声明扩展方法步骤:

  • 创建一个名为MyHelper的类,约定了此类中的方法均是扩展方法。注意这个类必须是静态类(Static)
  • 扩展方法必须是Static静态方法
  • 第一个参数为待扩展的类型,前面标注this
  • 如果MyHelper在一个类库中,记得对其添加引用using相关名称空间

A simple example

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Linq
{
    public static  class 扩展方法Helper
    {
        public static string ToMyUpper(this string helper)
        {
            return "\""+helper.ToUpper() + "\"";
        }

        public static string Quoted(this string helper,string a,string b)
        {
            return a + helper + b;
        }
        public static bool IsNumber(this string helper)
        {
            int i;
            return int.TryParse(helper,out i);
        }
        public static string ToChineses(this bool helper)
        {
            return  helper ? "" : "";
        }
        public static int CreateMan(this Person helper)
        {
            Person one = new Person { Age=18,Name="Eyes"};
            return one.Age;
        }
    }
    public class Person
    {
        public int Age { get; set; }
        public string Name { get; set; }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Linq
{
    class Program
    { 
        static void Main(string[] args)
        {

            Person p = new Person();
            Console.WriteLine(p.Name.IsNumber().ToChineses());
            Console.ReadKey();
        }
    }
}

总结

系列完善中,请持续关注...

© 著作权归作者所有

共有 人打赏支持
粉丝 2
博文 222
码字总数 199010
作品 0
黄浦
私信 提问
LINQ简记(2):重要概念

为了能让初学者更快速地掌握,在系列文章中,我尽可能地避开理论讲解,一则对于入门者来说,过多的理论叙述反而会降低大家学习编程的兴趣,二则,官方文档的资料很详细,我说了也是废话。因此...

junwong
2012/04/18
72
0
Web开发系列 - JSON

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子...

长征2号
2017/01/05
0
0
编写高质量代码改善C#程序的157个建议[IEnumerable和IQueryable、LINQ避免迭代、LINQ替代迭代]

前言 本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html 。本文主要学习记录以下内容:   建议29、区别LINQ查询中的IEnumerable和IQueryable   建议30、使用LINQ取代集合中的比...

aehyok
2014/05/09
0
0
编写高质量代码改善C#程序的157个建议[匿名类型、Lambda、延迟求值和主动求值]

前言   从.NET3.0开始,C#开始一直支持一个新特性:匿名类型。匿名类型由var、赋值运算符和一个非空初始值(或以new开头的初始化项)组成。匿名类型有如下基本特性: 1、既支持简单类型也支...

aehyok
2014/05/07
0
0
在LINQ to SQL中使用Translate方法以及修改查询用SQL

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处(以下两个链接可任选其一)、作者信息和本声明。否则将追究法律责任。 [url]http://jeffz.blog.51cto.com/309226/...

jeffz
2008/02/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

cmake 编译脚本

#!/bin/sh test -d build || mkdir -p build cd build cmake .. make

shzwork
2分钟前
0
0
数据表引擎

InnoDB表引擎 默认事务性引擎 数据存储在共享表空间,可以通过配置分开 对主键查询的性能高于其它引擎 从磁盘读取数据时自动在内存构建hash索引,插入数据时自动构建插入缓冲区 通过一些机制和...

关元
3分钟前
0
0
从零开始实现Vue简单的Toast插件

概述: 在前端项目中,有时会需要通知、提示一些信息给用户,尤其是在后台系统中,操作的正确与否,都需要给与用户一些信息。 1. 实例 在Vue组件的methods内,调用如下代码 `this``.$toast({...

前端小攻略
7分钟前
0
0
yaf和yaconf

pecl install yafpecl install yaconf [yaf] yaf.environ = dev yaf.use_spl_autoload = On yaf.use_namespace = 1 [yaconf] yaconf.directory = /data/wwwroot/yaconf......

果树啊
7分钟前
0
0
day01:shell基础(shell基础、alias及重定向)

1、shell基础介绍: shell是一个命令解释器,用于用户与机器的交互: 也支持特定的语法(逻辑判断,循环): 每个用户都有自己特定的shell:Centos7的shell是bash(bourne agin shell): shel...

芬野de博客
10分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部