//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. 题目分享G 二代目

    题意:有n组数,每组包含两个数,问在每组只能取一个的前提下能组成的最长的从1开始的连续自然数有几个? 分析:刚学了差分约束系统,很容易往转换成图的方向去想 将他读入的这n组数当成边读入 很容易会得到一 ...

  2. zabbix日常问题总结

    1.connection to database 'zabbix' failed: [1040] Too many connections 问题:数据库连接池太少解决:增加数据库连接池步骤:(1).进 ...

  3. python数据统计分析

    1. 常用函数库   scipy包中的stats模块和statsmodels包是python常用的数据分析工具,scipy.stats以前有一个models子模块,后来被移除了.这个模块被重写并成为了 ...

  4. spring boot项目中无法访问resources文件夹问题

    如图,浏览器默认访问static文件下的内容,无法访问templates文件下的html文件. 解决方法: 在application.properties文件中添加静态资源目录的配置即可.

  5. [js进阶1]-数据类型

    基本数据类型 js 总的有7中数据类型,包括基本类型和引用类型 基本类型 6 种 number boolean string null undefiend symbol 前5种类型统称为原始类型 sy ...

  6. Unity2019.3缺少Cinemachine插件/AssetStore搜索不到

    Unity2019.1版本都还自带Cinemachine,到2019.3就没有了(原因暂时未知),PackageManager里没有,到资源商店里搜索也找不到 解决方法: Windows>Pac ...

  7. 折腾了一晚上的“equals”和“==”

    最近在仿写美团这个项目的时候,遇到了一点关于字符串比较的问题,这里记录一下,避免以后再犯. 由于之前学c语言的时候,习惯性用“==”进行比较,初识Java,不知道有什么别的方法可以进行字符串比较,于是 ...

  8. for do-while while区别

    分别用for  do-while while求1-100的和

  9. 你应该知道的Python3.6、3.7、3.8新特性

    很多人在学习了基本的Python语言知识后,就转入应用阶段了,后期很少对语言本身的新变化.新内容进行跟踪学习和知识更新,甚至连已经发布了好几年的Python3.6的新特性都缺乏了解. 本文列举了Pyt ...

  10. CF#358 D. Alyona and Strings DP

    D. Alyona and Strings 题意 给出两个字符串s,t,让找出最长的k个在s,t不相交的公共子串. 思路 看了好几个题解才搞懂. 代码中有注释 代码 #include<bits/ ...