zoukankan      html  css  js  c++  java
  • LINQ 学习笔记7 Kevin

    Func Delegates(函数 委托)

    Func Delegae的声明:

    public delegate TR Func<TR>();
    public delegate TR Func<T0, TR>(T0 a0);
    public delegate TR Func<T0, T1, TR>(T0 a0, T1 a1);
    public delegate TR Func<T0, T1, T2, TR>(T0 a0, T1 a1, T2 a2);
    public delegate TR Func<T0, T1, T2, T3, TR>(T0 a0, T1 a1, T2 a2, T3 a3);

    其中,TR代表返回的数据类型,T0,T1,T2,T3代表输入的4个参数。从声明可以看出来,标准查询操作拥有的委托参数不会超过4个。TR返回的是参数列表中的最后一个的类型。

    例子:

    public static IEnumberable<T> Where<T>(this IEnumberable<T> source,Func<T,bool> predicate);

    参数被指定了FUNC<T,bool>,从这里可以知道,predicate方法返回的的类型是bool类型。

    标准查询操作 字母交叉引用

    会延迟查询的操作:


    AsEnumerable

    Cast

    Concat

    DefaultEmpty

    Distinct

    Empty

    Except

    GroupBy

    GroupJoin

    Intersect

    Join

    ofType

    OrderBy

    OrderByDescending

    Range

    Repeat

    Reverse

    Select

    SelectMany

    Skip

    SkipWhile

    Take

    TakeWhile

    ThenBy

    ThenByDescending

    Union

    Where

    两种方式的混合使用

    并非所有的场合都可以使用标准查询,可以两种方式混合使用。

    例子:

    IEnumberable<int> oddNumbers =(

    from n in nums where n % 2==1 select n).Reverse();

     

     

  • 相关阅读:
    桶排序
    Ultra-QuickSort
    Merge Sort
    Max Sum
    快排
    Oil Deposits
    1009: josephus问题
    A+B Again(在某个数中找大于m的最小约数)
    luogu4181 [USACO18JAN]Rental Service (贪心)
    luogu4185 [USACO18JAN]MooTube (并查集)
  • 原文地址:https://www.cnblogs.com/kfx2007/p/2706291.html
Copyright © 2011-2022 走看看