C# 中的 Array.Copy 与 Skip 和 Take

2023-12-02

我正在浏览这个问题和一些类似的问题:

从现有数组中获取子数组

我在很多地方读过这样的答案:

从现有数组中获取子数组

我想知道为什么 Skip 和 Take 不是数组的恒定时间操作?

反过来,如果它们是恒定时间操作,那么 Skip 和 Take 方法(最后不调用 ToArray())是否会具有相同的运行时间,而无需执行 Array.Copy 的开销,而且空间效率更高?


你必须区分不同的工作Skip and Take方法所做的工作,以及使用方法返回的数据的工作。

The Skip and Take方法本身是 O(1) 操作,因为它们所做的工作不会随输入大小而缩放。他们只是设置了一个能够从数组返回项目的枚举器。

当您使用枚举器时,工作就完成了。这是一个 O(n) 操作,其中 n 是枚举器生成的项目数。当枚举器从数组中读取时,它们不包含数据的副本,并且只要使用枚举器,就必须保持数组中的数据完整。

(如果您使用Skip在无法通过索引访问的集合(如数组)上,获取第一项是 O(n) 操作,其中 n 是跳过的项数。)

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

C# 中的 Array.Copy 与 Skip 和 Take 的相关文章

随机推荐

  • 处理 Swift 3 中的 Google 登录时遇到问题

    我是 iOS 新手 在 Swift 3 中处理应用程序委托 URL 时遇到问题 我真的可以使用一些指针 下面的代码在 Swift 2 3 中运行得非常好 func application application UIApplication
  • Python 子进程在接收 stdin EOF 时遇到神秘延迟

    我将应用程序中遇到的问题简化为以下测试用例 在此代码中 父进程同时生成 2 个 您可以生成更多 子进程 这些子进程通过 stdin 从父进程读取一条大消息 休眠 5 秒 然后写回一些内容 然而 某处发生了意外的等待 导致代码在 10 秒内完
  • PHP & MYSQL 动态下拉列表

    我一直在尝试创建一个带有动态下拉列表的表单 从 MYSQL 获取数据 我的数据库没问题 没有错误 第一类下拉菜单工作正常 但我想知道为什么我的第二个下拉菜单不起作用 我只是无法追踪代码中的任何错误 但这种情况正在发生 这是我的代码 动态下拉
  • 如何在一个正则表达式对象中使用多种模式?

    我写了一个脚本vba结合regular expressions解析company name phone and fax来自网页 当我运行脚本时 我可以完美地获取这些信息 然而 问题是我用过三种不同的expressions为了让它们成功 我创
  • 当所有参数似乎都已检查时,为什么审计参数检查会引发异常?

    鉴于以下方法定义 Meteor methods myMethod function foo Checking the only argument check foo String return true 方法很简单 但有时会失败 Meteo
  • 如何将数据从片段发送到活动[重复]

    这个问题在这里已经有答案了 在我的应用程序中 我的活动中有两个片段 在其中一个片段中 我有数据 例如 String name Transporter 我想将此名称发送到容器活动 我该怎么做 请帮我 该片段将附加到您从中启动的活动 因此 您可
  • 如何将流文件传递给执行Python脚本并使用属性和Nifi变量来存储该文件?

    我是 NiFi 和 Python 的新手 我需要您的帮助将流文件属性值传递给脚本 该脚本正在将嵌套的 json 转换为 csv 当我在本地运行该脚本时 它可以工作 如何将 FlowFile 名称传递给 src json 和 tgt csv
  • 为什么 Haskell 中不推断多态值?

    数字文字具有多态类型 Main gt t 3 3 Num t gt t 但是如果我将变量绑定到这样的文字 多态性就会丢失 x 3 Main gt t x x Integer 另一方面 如果我定义一个函数 它当然是多态的 f x 3 Main
  • 在网络表单中进行授权的最佳方式

    关于这个主题的每一项研究都展示了如何使用 MVC 来完成这项任务 我的项目是基于 MVP Webforms 的 我已完成身份验证 但是否有最好的授权模式或策略 例如 根据用户角色检查特定页面上的热链接 或者隐藏给定角色的 ASP 控件 目前
  • 从文本文件读取多个 JSON 对象

    我的问题与所问的类似here 几点 我无法更改格式 无需添加逗号等 这基本上是一个巨大的 txt 文件 包含 1000 个 Json 对象 我的 Json 对象非常大 这就是我现在正在做的事情 FileReader fileReader n
  • 将序列化器 geo_field 设置为另一个模型中的 PointField - Django

    我有两个模型 需要序列化Article作为 Geojson 通过设置geo field属性为point来自Location模型 按照给出的解决方案后here我收到错误 Got AttributeError when attempting t
  • 方向力布局中与图像重叠的链接

    在我的定向力布局中codepen我使用图标而不是圆圈 目前 链接与图像 图标重叠 我希望链接在图像之前结束 然而我看到d3noob 的例子链接在圆圈之后开始 结束 它不与圆圈重叠 我调整了以下返回语句 但无法正确修复它 function t
  • z-index 在 iframe 中的 pdf 浏览器中不起作用

    我不明白z index正在研究一个iframe其中包含 IE8 的 pdf 文件 它适用于谷歌浏览器 例子 JSFiddle HTML div div my text that should be on top div div div di
  • Android 选项卡视图 - 无法创建选项卡内容,因为找不到带有 id 的视图

    我正在尝试创建一个选项卡视图 并将通过 Id 切换到不同的内容视图 这是我的tab activity public class TabViews extends TabActivity Override protected void onC
  • Azure AADSTS900144:请求正文必须包含以下参数:“client_id”

    将该链接粘贴到 Web 浏览器以尝试登录我的 Azure 应用程序时出现以下错误 Microsoft Sign in Sorry but we re having trouble signing you in AADSTS900144 Th
  • CHM 的 hhc 文件转 html

    我创建了一个chm文件使用HTML Help workshop并且在 Windows 下运行良好 但是 那chm viewer用于Linux不太好 我不想用它Linux 我还被限制在 Linux 中使用任何其他查看器 于是我想到了反编译ch
  • org.springframework.web.client.RestClientException:无法提取响应:

    我正在创建一个restful API 它将使用来自服务器的json 但我遇到了以下异常 org springframework web client RestClientException 无法提取响应 找不到适合响应类型 Lexample
  • 如何获取 tf.dataset 中steps_per_epoch 的样本数量?

    我很好奇如何在 tf keras 中设置 steps per epoch 适合在 tf dataset 上进行训练 由于我需要示例数量来计算它 我想知道如何得到这个 由于它是 tf data 类型 您可以假设这更容易 如果我将steps p
  • 在实体框架中更新时排除属性

    我一直在寻找一种正确的方法来标记在 MVC 中更新模型时不更改的属性 例如 我们以这个小模型为例 class Model Key public Guid Id get set public Guid Token get set lots o
  • C# 中的 Array.Copy 与 Skip 和 Take

    我正在浏览这个问题和一些类似的问题 从现有数组中获取子数组 我在很多地方读过这样的答案 从现有数组中获取子数组 我想知道为什么 Skip 和 Take 不是数组的恒定时间操作 反过来 如果它们是恒定时间操作 那么 Skip 和 Take 方