自定义扩展方法(集合泛型约束)超好用,这里理解方法当参数来使用

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

namespace ConsoleApplication17
{
    public static class STSD
    {
        public static List<T> MyWhere<T>(this List<T> list, Func<T, bool> funWhere)
        {
            List<T> mList=new List<T>();
            foreach (T r in list)
            {
                if (funWhere(r))
                {
                    mList.Add(r);
                }
            }
            return mList;
           
        }
    }

class Program
    {
        static void Main(string[] args)
        {
            List<string> strList=new List<string>()
            {
                "3","9","32","7"

};
          strList= strList.MyWhere<string>(a=>a.CompareTo("6")<0).ToList();
            //strList = strList.Where(a=> Convert.ToInt32(a.ToCharArray()[0].ToString()) <6).ToList();
            //strList = strList.Where(a => { return Convert.ToInt32(a.ToCharArray()[0].ToString()) <6; }) .ToList();
            strList.ForEach(a => { Console.WriteLine(a);});
            Console.ReadKey();

}
    }
}

时间: 2024-09-30 01:59:54

自定义扩展方法(集合泛型约束)超好用,这里理解方法当参数来使用的相关文章

WinForm TextBox自定义扩展方法数据验证

本文转载:http://www.cnblogs.com/gis-crazy/archive/2013/03/17/2964132.html 查看公司项目代码时,存在这样一个问题:winform界面上有很多信息填写,提交后台服务器更新,但数据的合法验证及值的转换却不太敢恭维,一堆的if判断和转换,便想着是否能扩展个方法出来,琢磨出个思路,记录下来与大家共同探讨,有不对的地方还请大家指正. 设计思路: 1. 由于大部分从TextBox控件中获取数据值,可以扩展个泛型方法出来,直接根据转换后的数据类型

扩展方法、泛型、委托,的小案例

1.现有一个字符串集合,集合中存的是数字,把大于等于2的数值,打印出来,需要用到扩展方法.泛型.委托 class Projram{ static void Main(String[] args){ //定义一个集合, List<string> list = new List<string>{"1","3","5","6","7"}; //var okList = list.GetLi

Jquery自定义扩展方法(二)--HTML日历控件

一.概述 研究了上节的Jquery自定义扩展方法,自己一直想做用jquery写一个小的插件,工作中也用到了用JQuery的日历插件,自己琢磨着去造个轮子--HTML5手机网页日历控件,废话不多说,先看看效果图吧 效果图很简单,代码封装在JQuery中,网页端只需要要调用即可: 二.Jquery自定义实体对象 Jquery可以自定义函数function,有没有可以定义实体对象,里面封装方法那?查询了一下资料发现,是可以的,不仅能够封装属性,还可以写自己的方法,调用模板代码如下: $.Calende

集合框架(ArrayList存储自定义对象并遍历泛型版)

//集合框架(ArrayList存储自定义对象并遍历泛型版) package cn.itcast_02; import java.util.ArrayList; import java.util.Iterator; /* * 需求:存储自定义对象并遍历. * * A:创建学生类 * B:创建集合对象 * C:创建元素对象 * D:把元素添加到集合 * E:遍历集合 */ public class ArrayListDemo2 { public static void main(String[]

通过另类的泛型约束将两个输入输出参数不同的方法合并成一个方法的实现

其实我也不知道如何定义这个标题,词乏,姑且先这样定义吧. 看了本文章的朋友,如果有更好标题,请告诉我,谢谢. 有个项目使用SDK时遇到这样一个情况. 该SDK有个BtPrinterManager类,拥有两个方法:ServerPrint和ClientPrint,这两个方法有一部分参数是一样的,一部分参数不一样. 现在我们要对这个类进行封装,把这两个方法合并成一个方法,并且使其拥有相同的输入参数和输出参数. 比较粗糙的做法是,把这两个方法的输入参数合并成一个输入模型类,把两个方法的输出参数也合并成一

自定义类使用泛型and方法使用泛型

使用泛型的自定义类,泛型可以使用任意的数据类型,在创建对象的时候确定是什么数据类型,创建对象的时候不使用泛型,那就默认是Object类型 格式: 使用泛型的自定义类 package cn.zhuobo.day10.aboutGeneric; public class ClassGeneric<E> { private E name; public ClassGeneric() { } public ClassGeneric(E name) { this.name = name; } publi

Easyui的validatebox验证方法自定义扩展

由于easyui的validatebox本身提供的验证方法较少,故对其进行了自定义扩展. 1.新建一个js文件 —— extendValidateboxRules.js   ,内容如下: /** * auther by Highness * date : xxxx-xx-xx */ // 时间格式规范var regex_dateTime = /\d{4}\-\d{2}\-\d{2} \d{2}\:\d{2}:\d{2}/;//@author ren $.extend($.fn.validateb

C#中自定义扩展方法

在C#中,我们在不写子类的情况下,可以为类增加扩展方法,前提的被扩展的类不能使静态类. 步骤如下:   定义一个静态 类以包含扩展方法.该类必须对客户端代码可见. 有关可访问性规则的更多信息,请参见 访问修饰符(C# 编程指南). 将该扩展方法实现为静态方法,并使其至少具有与包含类相同的可见性. 该方法的第一个参数指定方法所操作的类型:该参数必须以 this 修饰符开头. 在调用代码中,添加一条 using 指令以指定包含扩展方法类的 命名空间. 按照与调用类型上的实例方法一样的方式调用扩展方法

java随手笔记之八集合泛型

Object:根类        toString,equals,hashCode包裹类:8个,Integer,Character        xxx parseXxx(),自动装箱(new Xxx())和自动拆箱(intValue())字符串类:    String:final类,不可改变的Unicode,返回新的字符串对象    StringBuffer,StringBuilder:final类,可改变的Unicode,返回原缓冲区的字符串对象数学类:    Math:静态