//List<T>.Take(m)      //取出 前m行

IEnumerable<Person> takeList = lstPerson.Take(4);

foreach (Person s in takeList) { Console.WriteLine("element in takeList: " + s); }

//List<T>.Where()

Console.WriteLine("找出Name='puma'的Person ");

IEnumerable<Person> whereList = lstPerson.Where(name => { if (name.Name == "puma") { return true; } else { return false; } });

Console.WriteLine(lstPerson.Where(name => { if (name.Name == "puma") { return true; } else { return false; } }));

foreach (Person s in lstPerson) { Console.WriteLine("element in subList: " + s); }

//List<T>.Find()              //找出Name='puma'的Person

Console.WriteLine("找出Name='puma'的Person→ ");

Console.WriteLine(lstPerson.Find(delegate (Person p) { return p.Name == "puma"; }).ToString() + "<p>");

//List<T>.FindAll()              //找出Age>10的數目

Console.WriteLine("找出Age>10的數目→ ");

Console.WriteLine(lstPerson.FindAll(delegate (Person p) { return p.Age > 10; }).Count.ToString() + "<p>");

//List<T>.Exists()              //檢查Name='F6'是否存在

Console.WriteLine("檢查Name='F6'是否存在→ ");

Console.WriteLine(lstPerson.Exists(delegate (Person p) { return p.Name == "F6"; }).ToString() + "<p>");

//依Name升冪排序

Console.WriteLine("<p>依Name升冪排序↑<br/>");

lstPerson.Sort(delegate (Person p1, Person p2) { return Comparer<string>.Default.Compare(p1.Name, p2.Name); });

foreach (Person p in lstPerson)             {                 Console.WriteLine(p.ToString() + "<br/>");             }

//List<T>.Sort()              //依Name降冪排序

Console.WriteLine("<p>依Name降冪排序↓<br/>");

lstPerson.Sort(delegate (Person p1, Person p2) { return Comparer<string>.Default.Compare(p2.Name, p1.Name); });

foreach (Person p in lstPerson)             {                 Console.WriteLine(p.ToString() + "<br/>");             }

public class Person     {         private int _ID;         private string _Name;         private int _Age;

public Person(int ID, string Name, int Age)         {             _ID = ID;             _Name = Name;             _Age = Age;         }

public int ID         {             set { _ID = value; }             get { return _ID; }         }         public string Name         {             set { _Name = value; }             get { return _Name; }         }         public int Age         {             set { _Age = value; }             get { return _Age; }         }

public override string ToString()         {             return string.Format("ID:{0},Name:{1},Age:{2}", _ID, _Name, _Age);         }

}

List<T> 的扩展方法的更多相关文章

  1. .NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法

    .NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法 0x00 为什么需要Map(MapWhen)扩展 如果业务逻辑比较简单的话,一条主管道就够了,确实用不到 ...

  2. .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类

    .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类 0x00 为什么要引入扩展方法 有的中间件功能比较简单,有的则比较复杂,并且依赖其它组件.除 ...

  3. 为IEnumerable<T>添加RemoveAll<IEnumerable<T>>扩展方法--高性能篇

    最近写代码,遇到一个问题,微软基于List<T>自带的方法是public bool Remove(T item);,可是有时候我们可能会用到诸如RemoveAll<IEnumerab ...

  4. C#的扩展方法解析

    在使用面向对象的语言进行项目开发的过程中,较多的会使用到“继承”的特性,但是并非所有的场景都适合使用“继承”特性,在设计模式的一些基本原则中也有较多的提到. 继承的有关特性的使用所带来的问题:对象的继 ...

  5. 扩展方法(C#)

    扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型.扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用. 下面的示例为String添加 ...

  6. 扩展方法解决LinqToSql Contains超过2100行报错问题

    1.扩展方法 using System; using System.Collections.Generic; using System.Linq; using System.Web; using Sy ...

  7. C#扩展方法

    扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. 扩展方法就相当于一个马甲,给一个现有类套上,就可以为这个类添加其他方法了. 马甲必须定义为stati ...

  8. 枚举扩展方法获取枚举Description

    枚举扩展方法 /// <summary> /// 扩展方法,获得枚举的Description /// </summary> /// <param name="v ...

  9. 扩展方法 1 简单的string扩展方法

    这里是关于 String的简单扩展方法 (静态类 静态方法 this 类型 这里是string) static class Program { static void Main(string[] ar ...

  10. C#中的扩展方法

    扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用. 以上是msdn官网对扩展方 ...

随机推荐

  1. LeetCode 56,57,60,连刷三题不费劲

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode专题的第34篇文章,刚好接下来的题目比较简单,很多和之前的做法类似.所以我们今天出一个合集,一口气做完接下来的57.5 ...

  2. Ansible入门知识

    一.ansible概述 Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具.它用Python写成,类似于saltstack和Puppet,但是有一个不同和优点是我们不需要在节点中安装 ...

  3. 抓住CoAP协议的“心”

    摘要 The Constrained Application Protocol(CoAP)是一种专用的Web传输协议,用于受约束的节点和受约束的(例如,低功率,有损)网络. 节点通常具有带少量ROM和 ...

  4. HashMap面试知识点总结

    主要参考 JavaGuide 和 敖丙 的文章, 其中也有参考其他的文章, 但忘记保存链接了, 文中图片也是引用别的大佬的, 请见谅. 新手上路, 若有问题, 欢迎指正. 背景 HashMap 的相关 ...

  5. C#学习笔记——数据类型

    数据类型 sbyte x; //8bit,有符号,表示-128~127 bite x; //8bit,无符号,表示0~255 short x; //16bit,有符号整型 ushort x; //16 ...

  6. Pytorch 四种边界填充方式(Padding)

    1. 选用卷积之前填充(强烈建议) 小生非常推荐大家不再使用卷积所带的填充方式,虽然那种方式简单,但缺陷太多.① 不能根据自己的需要来决定上与下填充不等的边界,左右填充不等的边界:② 边界填充零容易出 ...

  7. 基于Nettty打造自己的MVC服务器

    最近开始折腾Netty,体验下NIO编程.既然学习了,就要做点东西出来,要不然不容易掌握学到的东西.在Netty的官方demo上都有各种case的sample,打造Http服务器的核心代码就是从Sam ...

  8. 学习笔记:平衡树-splay

    嗯好的今天我们来谈谈cosplay splay是一种操作,是一种调整二叉排序树的操作,但是它并不会时时刻刻保持一个平衡,因为它会根据每一次操作把需要操作的点旋转到根节点上 所谓二叉排序树,就是满足对树 ...

  9. ABAP基础1:概念

    包(Package)也称作开发类,是为了将程序等对象根据功能划分,进行区分和管理而导入的概念 每一个开发对象,如程序.类,都要隶属一个包,包一般隶属于某一个模块 每个包拥有一个CTS号,CTS号用于系 ...

  10. 关于Docker的实践

    docker 安装 wget -qO- https://get.docker.com/ | sh 镜像 images search pull commit build tag 查看本地镜像:docke ...