zoukankan      html  css  js  c++  java
  • List<T>泛型的Find 和 Where 用法范例

    List<T>泛型的Find 和 Where 用法范例

    http://blogs.msdn.com/b/kcwalina/archive/2004/06/22/162533.aspx

    http://www.cnblogs.com/yuanyuan/archive/2010/06/19/1760987.html

    API Design

    Delegates

    namespace System {

       public delegate void Action<T>(T obj);

       public delegate bool Predicate<T>(T obj);

       public delegate U Converter<T,U>(T from);

       public delegate int Comparison<T>(T x, T y);

    }

    List<T>

    public class List<T> : … {

       public int FindIndex(Predicate<T> match);

       public int FindIndex(int index, Predicate<T> match);

       public int FindIndex(int index, int count, Predicate<T> match);

     

       public int FindLastIndex(Predicate<T> match);

       public int FindLastIndex(int index, Predicate<T> match);

       public int FindLastIndex(int index, int count, Predicate<T> match);

     

       public List<T> FindAll(Predicate<T> match);

       public T Find(Predicate<T> match);

       public T FindLast(Predicate match);

     

       public bool Exists(Predicate<T> match);

       public bool TrueForAll(Predicate<T> match); 

       public int RemoveAll(Predicate<T> match);

     

       public void ForEach(Action<T> action);

       public void Sort(Comparison<T> comparison);

       public List<U> ConvertAll<U>(Converter<T,U> converter);

    }

    Finding Even Integers in List<T>

    List<int> integers = new List<int>();

    For(int i=1; i<=10; i++) integers.Add(i);

    List<int> even = integers.FindAll(delegate(int i){

       return i%2==0;

    });

    Finding Complex Type in List<T>

    public class Order {

       public Order(int number, string item) { … }

       public int Number { get { return number; } }

       public string Item { get { return item; } }

       …

    }

    List<Order> orders = new List<Order>();

    int orderNumber = 10;

    Order order = orders.Find(delegate(Order o){

       return o.Number==orderNumber;

    });

    Computing Sum of Integers in List<T>

    List<int> integers = new List<int>();

    for(int i=1; i<=10; i++) integers.Add(i);

    int sum;

    integers.ForEach(delegate(int i){ sum+=i; });

    Sort Orders in List<T>

    List<Order> orders = new List<Order>();

    orders.Add(new Order(10,”Milk”));

    orders.Add(new Order(5,”Cheese”));

     orders.Sort(delegate(Order x, Order y){

       return Comparer<int>.Default.Compare(x.Number,y.Number);

    });

    Convert Orders to Order Numbers

    List<Order> orders = new List<Order>();

    orders.Add(new Order(10,”Milk”));

    orders.Add(new Order(5,”Cheese”));

    List<int> numbers = orders.ConvertAll(delegate(Order x){

       return o.Number;

    });

  • 相关阅读:
    Spring Boot基础
    MyBatis开启二级缓存
    MyBatis逆向工程
    html实现“加入收藏”代码
    vue-router 基本使用
    vue 脚手架安装
    webpack入门 webpack4常见出错之处
    $.ajax()方法详解
    防止网页被嵌套
    H5字符实体参考
  • 原文地址:https://www.cnblogs.com/hanyun/p/3068690.html
Copyright © 2011-2022 走看看