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;

    });

  • 相关阅读:
    App开发Native.js入门指南
    C# Dapper 基本使用 增删改查事务等
    特殊字符码
    assert
    俩个高斯分布之间的KL散度
    np.random.normal(loc=0,scale=1e-2,size=shape)
    解决Github加载ipynb文件缓慢/失败
    画出8个高斯分布散点图
    解决tensorflow报错ValueError: Variable conv1/weights already exists, disallowed.原因:第二次使用的是第一次的就的变量
    互信息
  • 原文地址:https://www.cnblogs.com/hanyun/p/3068690.html
Copyright © 2011-2022 走看看