【问题标题】:LINQ generic delegates in .NET.NET 中的 LINQ 泛型委托
【发布时间】:2020-06-23 12:49:25
【问题描述】:

我有一个我无法回答的考试问题,我查了一下也找不到答案。

".NET 在 LINQ 中使用哪些泛型委托?"

【问题讨论】:

  • “哪些通用代表”是什么意思?
  • @EJoshuaS-ReinstateMonica -“你的意思是”对于 OP 来说很难回答,因为 OP 不是写这个问题的人,这就是为什么 OP 正在努力寻找答案

标签: c# .net linq generics delegates


【解决方案1】:

Func delegate 的不同版本用于不同的LINQ 方法。例如Enumerable.Where 有两个不同的重载,分别接受Func<TSource, Boolean>Func<TSource, Int32, Boolean>。您可以自己通过Enumerable(或Queryable)方法,据我所知只有Func<T,TResult>Func<T1,T2,TResult>用于标准查询操作。

【讨论】:

    【解决方案2】:

    动作 功能 谓词 .net 在 Linq 中使用这 3 个委托

    【讨论】:

    • 是吗?在哪里?
    • @GertArnold - 取决于您使用的 LINQ 查询,在 .Where 中您使用的是 Predicate(返回布尔值接受 T 作为参数)- 在 .Select 中您正在使用 Func(返回 T1 接受 T 作为参数) - 在 .ForEach 中,您正在使用 Action(无效并接受 T 作为参数)
    • @RandRandom ForEach 不是 LINQ 的一部分,而是在 List<T> AFAIK 上定义的方法。
    • 不是System.PredicateForEach 不是 LINQ。
    • @RandRandom 好的,这不是你的答案,但 LINQ 方法在任何地方都不会接受 System.Predicate 对象。 Func<T,bool> 是语义上的谓词,而不是严格的技术意义上的谓词。我真的不明白这个答案怎么能被赞成,更不用说接受了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    相关资源
    最近更新 更多