专栏首页木宛城主Linq快速入门——扩展方法

Linq快速入门——扩展方法

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();
        }
    }
}

总结

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C++随记(九)---名称空间

    C++随记(九)---名称空间 C++中,名称可以是变量、函数、结构、类等等,项目增大会使得名称冲突的可能性增大,人类可用的单词数太少,并且不同的人写的程序不可...

    TeeyoHuang
  • C++随记(十)--类与对象(1)

    C++随记(十)--类与对象(1) 类是C++中实现OOP的基础,C++相较于C来说最重要的应该就是增设了类这一概念吧。所谓面向对象的编程,其实可以理解面向...

    TeeyoHuang
  • C++随记(三)---动态分配内存问题(2)

    C++随记(三)---动态分配内存问题(2)      上一篇博文讲到了使用动态数组时,只要把指针名字当作数组名使用即可,而且指针名可以进行运算,而数组名不...

    TeeyoHuang
  • C++随记(六)---函数处理数组的一些问题

    C++随机(六)---函数处理数组的一些问题 本篇讨论数组做函数形参的情况。 通常,我们按照以往设置形参的习惯,可能会对数组形参做如下的书写: int exa...

    TeeyoHuang
  • C++随记(一)---字符串数组的输入问题

    首先来看一段程序: #include<iostream> using namespace std; int main(){ char name[10],s...

    TeeyoHuang
  • C++随记(七)--引用变量

    C++随记(七)--引用变量 引用变量是C++新增的一种复合类型。引用是 已定义的变量的一个别名(另一个名称)。引用变量的主要用途是用作函数的形参,如果将引用变...

    TeeyoHuang
  • C++随记(二)---动态分配内存问题(1)

    C++随记(二)---动态分配内存问题(1) 面向对象的编程的一个特点就是在运行阶段(而不是编译阶段)进行决策。运行阶段决策提供了灵活性,可以根据当时的情况进行...

    TeeyoHuang
  • C++随记(四)---动态数组vector

    C++随记(四)---动态数组vector         前面两篇博文简单讲了一下C++通过new分配动态内存的问题。这一节就该轮到vector登场了,说实...

    TeeyoHuang
  • C++随记(八)---存储持续性、作用域和链接性

    版权声明:本篇文章是阅读《C++primer plus (第6版)中文版》第9章之后所作的笔记。部分文字和图表摘自于这本书。 C++随记(八)---存储持续性、...

    TeeyoHuang
  • C++随记(五)---const 与 指针

    C++随记(五)---const 与 指针 const 限定符它把一个对象转换成一个常量,const与define。两者都可以用来定义常量,但是const定...

    TeeyoHuang

扫码关注云+社区

领取腾讯云代金券