如何实现Linq OrderBy方法?

2023-12-24

我试图更多地了解 linq,例如,如果我想实现一个 Select 我会像这样实现

public static IEnumerable<TResult> Select<TSource, TResult>(IEnumerable<TSource> source, Func<TSource, TResult> selector)
{
    foreach (var item in source)
    {
        yield return selector(item);
    }
}

像这样的地方

public static IEnumerable<TSource> Where<TSource>(IEnumerable<TSource> source, Func<TSource, bool> predicate)
{
    foreach (var item in source)
    {
        if (predicate(item))
            yield return item;
    }
}

订购方式怎么样?


看一眼this https://codeblog.jonskeet.uk/2011/02/23/reimplementing-linq-to-objects-part-45-conclusion-and-list-of-posts/。我想你会发现它非常有用。基本上,Jon Skeet 重新实现了 Linq 中的所有内容作为学习练习。信息非常丰富。

第二部分讲实施Where https://codeblog.jonskeet.uk/2010/09/03/reimplementing-linq-to-objects-part-2-quot-where-quot/...等等直到描述的部分OrderBy https://codeblog.jonskeet.uk/2011/01/05/reimplementing-linq-to-objects-part-26b-orderby-descending-thenby-descending/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何实现Linq OrderBy方法? 的相关文章

随机推荐

  • 在 React 样式属性中使用 props

    我使用的是带有 ES6 语法的 JSX 这有效 render return div div 这行不通 为什么不行 编辑 它确实有效 render return div div Edit 它可以工作 但样式值必须是有效值 否则它将返回错误 我
  • --line-regexp 选项带有空数据

    考虑这个命令 printf alpha nbravo ncharlie n grep line regexp quiet bravo grep 看到由换行符分隔的 3 行 并与 bravo 行匹配 现在考虑 这个命令 printf alph
  • C 风格字符串、指针、数组

    我无法理解 C 风格字符串是什么 新年快乐 我知道的 指针保存着内存地址 取消引用指针将为您提供该内存位置的数据 int x 50 int ptr x pointer to an integer holds memory address o
  • 以函数式方式遍历树

    我已经在 Scala 中实现了一个基本的可变树 我想以函数方式遍历它以搜索元素 但我不知道如何实现它 如果可能的话 我还希望算法是尾递归的 树是一个具有值和叶子列表的结构 叶子也是树 任何帮助 将不胜感激 这是我的代码 重点关注 getOp
  • 如何使用 Google Compute Engine 安全地配置 App Engine 套接字

    我想在 Google Compute Engine 上放置一个 Redis 服务器 并通过 AppEngine 的套接字支持与其通信 唯一的问题是 似乎没有特定的防火墙规则表明 此 AppEngine 应用程序可以访问此主机 端口 而不能访
  • django URLValidator 产生虚假错误

    我正在使用 DjangoURLValidator形式如下 def clean url self validate URLValidator verify exists True url self cleaned data get url t
  • 使用logging::init_from_stream 增强日志格式单个属性

    当我在代码中设置格式参数时 为了格式化日期时间输出 我可以使用类似的东西 logging formatter simpleFormat expr format 1 2 expr format date time
  • Recyclerview Adapter 和 Glide - 每 4-5 行相同的图像

    我有这个问题 只是为了测试目的我添加ParseFile到其中之一ParseObject从收到的列表中 它不是仅在该行中显示 而是每 4 5 行显示一次 有时更多 有时更少 我怀疑回收观点与此有关 奇怪的是 其他数据 从本示例中删除 可以正常
  • 让 Visual Studio 使用不同的次要版本工具集?

    Under C Program Files x86 Microsoft Visual Studio 2019 Professional VC Tools MSVC 我有不同的目录 例如 14 16 xxxxx 14 24 xxxxx 14
  • 类型“Promise”不可分配给类型“string[]”

    出现以下错误 类型 Promise 不可分配给类型 string 类型 Promise 中缺少属性 includes 当我将 Promise 强制转换为 string 时 我的代码如下 组件 app dashboard ts import
  • 如何使用 java - 首选 java8 多线程解压巨大的文件夹?

    参考 http www pixeldonor com 2013 oct 12 concurrent zip compression java nio http www pixeldonor com 2013 oct 12 concurren
  • Python:将一个列表中的值与另一列表中的值序列进行匹配

    确实需要帮助 我对循环感到困惑并碰壁了 我有两个清单 e list edward 1 2 3 4 jane 1 2 3 4 jackie 2 3 4 10 和 a list 要检查的主列表 a list a 1 2 3 b 2 3 c 2
  • CUDA并行NSight同时调试主机和设备

    有谁知道是否可以在远程计算机上使用并行 NSight 调试 CUDA 我能够进入 CUDA 代码 但不能进入我的主机代码 它表示 CUDA 能够生成主机调试信息 因此远程和本地调试应该是可能的 我的显卡是 580 GTX device co
  • 可以重载嵌套私有类的运算符<<吗?

    如何为像这样的嵌套私有类重载运算符 class outer private class nested friend ostream operator lt lt ostream os const nested a 当尝试外部类之外时 编译器
  • 我应该在 PHP PERFORMANCE-WISE 中使用 MySQL 的预准备语句吗?

    我了解 MySQL 中预准备语句的安全优势 无需在此讨论该主题 我想知道他们的性能方面 现在 我知道当使用准备好的语句的查询在单个 PHP 脚本中执行两次时 速度会更快 因为该查询仅解析一次 每个查询一次 客户端进行一次准备 然后使用二进制
  • “易失性”是否能保证多核系统的可移植 C 代码中的任何内容?

    看了一个之后 of https stackoverflow com questions 78172 using c pthreads do shared variables need to be volatile 问题 https stac
  • windows azure 中的子域映射

    我正在使用 VS 2010 WCF 和 Windows Azure 开发任务管理系统 这是一个简单的个性化任务管理应用程序 该应用程序允许用户组织和共享他们的任务 将没有 我的项目中的用户数 如果有人 订阅 该应用程序 那么我们需要使用子域
  • 传统日志记录与 AOP 日志记录

    我正在开始这个新项目 我们正在研究我们的日志记录 调试方法 我想向你们其他人提出这个问题 因为 private final static Logger logger LoggerFactory getLogger getClass publ
  • 绘图数字化 - 从图形图像中抓取样本值

    这并不是真正的 OCR 因为它不识别字符 但它与应用于曲线的想法相同 有人知道用于从 光栅 绘图图像检索值的图像处理库或已建立的算法吗 例如 在这张图中 我很难用眼睛读取精确的值 因为网格线之间存在这样的间隙 我可以使用直尺或其他工具 但它
  • 如何实现Linq OrderBy方法?

    我试图更多地了解 linq 例如 如果我想实现一个 Select 我会像这样实现 public static IEnumerable