在 foreach 循环内部或外部声明变量:哪个更快/更好?

2023-11-27

其中哪一个更快/更好?

这个:

List<User> list = new List<User>();
User u;

foreach (string s in l)
{
    u = new User();
    u.Name = s;
    list.Add(u);
}

或者这个:

List<User> list = new List<User>();

foreach (string s in l)
{
    User u = new User();
    u.Name = s;
    list.Add(u);
}

我的新手开发技能告诉我第一个更好,但我的一个朋友告诉我我错了,但无法给我一个很好的理由为什么第二个更好。

性能上有什么区别吗?


从性能角度来看,这两个示例都编译为相同的 IL,因此没有区别。

第二个更好,因为它更清楚地表达了你的意图,如果u仅在循环内部使用。

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

在 foreach 循环内部或外部声明变量:哪个更快/更好? 的相关文章

  • DispatcherTimer 未按时执行

    我正在使用 c 中的 DispatchTimer 编写一个时钟应用程序 但由于某些原因 我的时钟似乎时不时地跳过 1 秒 例如 52 秒 gt 54 秒 跳过 53 秒 在我看来 计时器并不是每秒都执行一次 DispatcherTimer
  • 必须打开存储才能执行此操作 - System.IO.Packaging.Package

    我正在使用 System IO Packaing Package 类来压缩文件 我的应用程序的多个实例可以同时运行 并读取和保存文件 当处理小文件时 一切似乎都很好 但是当涉及大文件时 如果应用程序的两个实例同时保存 我会收到一个异常 消息
  • SetWindowsHookEx 函数返回 NULL

    我正在研究 DLL 注入 但收到错误如下 挂接进程失败 87 参数不正确 目标进程和dll都是64位的 注入代码为 BOOL HookInjection TCHAR target TCHAR dll name https msdn micr
  • WebClient读取错误页面的内容

    我有一个加载页面内容的应用程序 我使用 WebClient 类 即使服务器返回 404 500 等错误 我也需要检索内容 我需要这样的东西 WebClient wc new WebClient string pageContent try
  • 关闭 XDOCUMENT 的实例

    我收到这个错误 该进程无法访问文件 C test Person xml 因为它是 被另一个进程使用 IOException 未处理 保存文件内容后如何关闭 xml 文件的实例 using System using System Collec
  • 如何使用汇编获取BIOS时间?

    我正在从头开始实现一个小型操作系统 用于教育目的 现在 我想使用汇编来获取 BIOS 时间 我对此进行了很多搜索 但找不到任何代码示例来执行此操作 如果有人可以提供任何参考或代码示例或与此相关的任何内容 我将非常感激 See 时钟中断 1a
  • rand() 播种与 time() 问题

    我很难弄清楚如何使用 rand 并使用 Xcode 用 time 为其播种 我想生成 0 到 1 之间的随机十进制数 该代码为我提供了元素 1 和 2 看似随机的数字 但元素 0 始终在 0 077 左右 有什么想法吗 我的代码是 incl
  • C 中的模仿函数重写

    具体来说 函数重写能够调用基本重写方法 这有两部分 一个是预编译的库代码 1 另一个是库的用户代码 2 我在这里实现了一个尽可能最小的经典 Person 和 Employee 示例 非常感谢了解 OOP 概念的铁杆 C 开发人员的回应 我正
  • 使用反射获取基类的受保护属性值

    I would like to know if it is possible to access the value of the ConfigurationId property which is located in the base
  • 使用 openssl 检查服务器安全协议

    我有一个框架应用程序 它根据使用方式连接到不同的服务器 对于 https 连接 使用 openssl 我的问题是 我需要知道我连接的服务器是否使用 SSL 还是 TLS 以便我可以创建正确的 SSL 上下文 目前 如果我使用错误的上下文尝试
  • 在“using”语句中使用各种类型 (C#)

    自从C usingstatements只是try finally dispose 的语法糖 为什么它接受多个对象仅当它们属于同一类型时 我不明白 因为它们需要的只是 IDisposable 如果它们都实现 IDisposable 应该没问题
  • c# 如何生成锦标赛括号 HTML 表

    所以我已经被这个问题困扰了三个星期 但我一生都无法弄清楚 我想做的是使用表格获得这种输出 演示 http www esl world net masters season6 hanover sc2 playoffs rankings htt
  • 更改其他页面的主窗口内容

    在 WPF 应用程序的主窗口中 我有一个 Badged 元素 来自材料设计 这是我的代码
  • 从包含大量文件的目录中检索文件

    我的目录包含近 14 000 000 个 wav 格式的音频样本 所有普通存储 没有子目录 我想循环浏览文件 但是当我使用DirectoryInfo GetFiles 在该文件夹上 整个应用程序冻结了几分钟 可以用另一种方式完成吗 也许读取
  • 如何将字符串转换为 Indian Money 格式?

    我正在尝试将字符串转换为印度货币格式 例如如果输入为 1234567 则输出应为 12 34 567 我编写了以下代码 但它没有给出预期的输出 CultureInfo hindi new CultureInfo hi IN string t
  • 当在 Repository/UnitOrWork 之上使用 Service 类时,我应该在哪里放置逻辑不适合 Repository 的常用数据访问代码?

    In my 先前的问题 https stackoverflow com questions 24906548 using the generic repository unit of work pattern in large projec
  • 为什么C语言中可以使用多个分号?

    在 C 中我可以执行以下操作 int main printf HELLO WORLD 它有效 这是为什么 我个人的想法 分号是一个 NO OPERATION 来自维基百科 指示符 拥有一大串分号与拥有一个分号并告诉 C 语句已结束具有相同的
  • 是否有任何不使用公共虚拟方法的正当理由? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 是否有任何不使用公共虚拟方法的正当理由 我在某处读到我们应该避免使用公共虚拟方法 但我想向专家确认这是否是有效的声明 对于良好且稳定的 API
  • 在何处将 CFLAG(例如 -std=gnu99)添加到 (Eclipse CDT) 自动工具项目中

    我有一个简单的 Autotools C 项目 不是 C 其框架是由 Eclipse CDT Juno 为我创建的 CFLAG 通过检查 似乎是 g O2 我希望所有生成的 make 文件也具有 std gnu99附加到 CFLAG 因为我使
  • 将文本从文本文件添加到 PDF 文件[重复]

    这个问题在这里已经有答案了 这是我的代码 using FileStream msReport new FileStream pdfPath FileMode Create step 1 using Document pdfDoc new D

随机推荐

  • 如何修复 python socket-io 服务器中的“Access-Control-Allow-Origin”错误

    我正在创建一个使用 Vue js 作为客户端 和 Python 作为服务器 的项目 Python用于一些计算 Vue js用于接口 我使用 python socketio 连接它们 https python socketio readthe
  • java中ArrayList的排序

    我有一个 ArrayList of String 的 ArrayList 在 Outer ArrayList 的每个索引上 每个 Inner ArrayList 有四个项目 有四个参数 联系人 ID 联系人姓名 联系地址 联系电话 现在我想
  • Telegram 机器人向机器人发送消息

    我编写了一个电报机器人 这在发送给群组或用户时效果很好 不过我有一个特殊的要求 我需要能够发送给另一个机器人 将两个机器人以管理员身份添加到组时 我仍然无法通过第二个机器人接收消息 我只能通过添加到该组的真实用户帐户看到它 我缺少什么 我使
  • Linux命令用另一个字符串替换大文件中的字符串

    我有一个巨大的 SQL 文件在服务器上执行 转储来自我的机器 其中有一些与我的机器相关的设置 所以基本上 我希望每次出现 c temp 被替换为 home some blah 如何从命令行完成此操作 sed对于大文件来说是一个不错的选择 s
  • MYSQL:如何找到“上周一的日期”(性能问题)

    有没有比写更简单的方法 select date sub curdate 间隔 WEEKDAY curdate 天 正如上周一从双 如果您不使用古老的 MySQL 则可以将其包装在存储函数中 CREATE FUNCTION LastMonda
  • rgdal 包纬度/经度 -> UTM

    有人能看出这有什么问题吗 library rgdal Make a two column matrix col1 long col2 lat xy lt cbind c 107 c 26 Convert it to UTM coordina
  • 使用 Numpy 和 Cython 加速距离矩阵计算

    考虑一个维度为 NxM 的 numpy 数组 A 目标是计算欧几里德距离矩阵 D 其中每个元素 D i j 是行 i 和 j 之间的欧几里德距离 最快的方法是什么 这并不完全是我需要解决的问题 但它是我正在尝试做的事情的一个很好的例子 一般
  • 从电子邮件提交表格

    我正在开发一个通过电子邮件提交表单的项目 场景是这样的 我们将向电子邮件列表发送一份表格 客户必须在其中填写表格 一旦他们点击 提交 就应该提交表格 并且服务器应该能够检索填写者提供的值 当我尝试过 它没有将提交按钮视为表单提交 并且没有执
  • 在关系数据库中,我们可以拥有一个与其他表没有任何关系的表吗?

    在关系数据库中 我们可以拥有一个与其他表没有任何关系的表吗 是的 关系的表达方式是使用外键 如果您生成的表没有外键 并且其他表中没有外键指向该表 则它没有关系 不过 以后仍然可以建立关系 所以不要担心搬起石头砸自己的脚
  • 如何访问R中传单生成的地图

    假设我有这样的代码 Install devtools if needed if require devtools install packages devtools view rawif devtools R hosted with by
  • 如何在 git 中设置临时存储库?

    我想创建一个存储库 B 在名为 x master 的分支中跟踪远程存储库的主服务器 A 它自己的主控在初始创建时也应该是一个克隆 其他 开发人员 可以克隆并将更改推送到其中 有时 由于 A 中有更改 我需要能够将它们拉下来并将它们合并到 B
  • std::ifstream 缓冲区缓存

    在我的应用程序中 我试图合并排序的文件 当然要保持它们排序 因此我必须迭代两个文件中的每个元素 以将最小值写入第三个文件 这在大文件上运行得相当慢 因为我没有看到任何其他选择 必须完成迭代 我正在尝试优化文件加载 我可以使用一定量的 RAM
  • SQL CTE 和 ORDER BY 影响结果集

    我在下面粘贴了一个非常简化的 SQL 查询版本 我遇到的问题是ORDER BY语句正在影响我的 CTE 的选择结果 我一直无法理解为什么会这样 我最初的想法是在 CTE 中 我执行了一些SELECT声明 然后ORDER BY应该致力于那些结
  • Kotlin 协程中的 launch/join 和 async/await 有什么区别

    In the kotlinx coroutines库 您可以使用以下任一方式启动新的协程launch with join or async with await 它们之间有什么区别 launch习惯于即发即忘协程 这就像开始一个新线程 如果
  • imap_unordered,但带有惰性扁平生成器

    我有一个已经可以解决的问题multiprocessing Pool但解决方案并不是非常理想 也就是说 我拥有一组相当小的输入 每个输入都映射到一个大数据集 虽然我可以使用imap unordered对于返回列表的函数 这远非高效 因为每个大
  • PHP 生成的 csv 文件在 Excel 2007 中显示英镑符号 (£) 的 £

    我使用以下标头命令生成 csv 文件 header Content type text csv charset utf 8 encoding utf 8 header Content Disposition attachment filen
  • 32 位系统上的 Java 10(及更高版本)

    据我所知 oracle 没有计划为 32 位提供 java 但也许我误解了情况 如果我是对的 如果我们需要支持 32 位库 dll 我们该怎么办 那么 32 位操作系统又如何呢 目前这似乎对未来产生巨大影响 但正如我所说 也许我错了 事实上
  • 在 PyQt 中(很好地)显示代数表达式 [重复]

    这个问题在这里已经有答案了 在我的 python 程序中 有一个我创建的数学对象的层次结构 它们代表数学公式 例如 有Collection 这是一系列Equations 这是一个包含两个的容器Sums Products Quotients
  • 设置autoDeploy和deployOnStartup会导致应用程序在启动时部署两次?

    我正在阅读 Damonar Chetty 撰写的 Tomcat 6 开发人员指南 他在主机章节中说道 将两者设置为 true 将导致应用程序在启动时部署 然后在 Tomcat 启动并运行后再次部署 因此 请确保至少将其中一项设置为 fals
  • 在 foreach 循环内部或外部声明变量:哪个更快/更好?

    其中哪一个更快 更好 这个 List