呼叫其他代码呆子 - 嵌套循环的替代方案?

2024-04-07

对于我(或可能其他人)来说,拥有一个需要迭代的对象列表,然后与属性列表进行交互的情况并不罕见。我使用嵌套循环,如下所示:

IList<T> listOfObjects;
IList<TProperty> listOfProperties;

foreach (T dataObject in listOfObjects)
{
    foreach (TProperty property in listOfProperties)
    {
        //do something clever and extremely useful here
    }
}

这是这个问题经过时间和性能测试的模式吗?或者是否有更高性能、更优雅或只是简单有趣的东西(当然仍然具有可读性和可维护性)?

上面的代码并没有让我微笑。有人可以帮我的循环带来一些欢乐吗?

谢谢你!

更新:我在最积极的意义上使用“书呆子”这个词。正如维基百科定义的一部分所述,“指的是热情追求智力活动的人”。我所说的“代码书呆子”是指那些关心不断提高自己作为程序员的人,寻找新的、新颖的、优雅的、快速、可维护且美观的编码方式!他们很高兴摆脱 VB6,并希望聪明的人批评他们的代码并帮助他们使自己变得聪明。 (注:他们还喜欢创造以 -ify 结尾的新词)。

最后说明:

感谢 Dave R、Earwicker 和 TheSoftwareJedi 让我走上了 Linq 之路。这正是我一直在寻找的那种快乐的代码!


看起来您正在尝试笛卡尔连接两个列表,并应用 where 子句。这是一个简单的示例,显示了执行此操作的 Linq 语法,我认为这就是您正在寻找的。 list1 和 list2 可以是任何 IEnumerable,您的 where 子句可以包含更详细的逻辑,并且在您的 select 子句中您可以取出您需要的内容。

        var list1 = Enumerable.Range(1, 100);
        var list2 = Enumerable.Range(1, 100);

        foreach (var item in from a in list1
                             from b in list2
                             where a % b == 0
                             select new { a, b })
        {
            Console.WriteLine(item);
        };

性能将与您发布的内容相同 - 无意在这方面误导。我确实更喜欢这种 Linq 语法。

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

呼叫其他代码呆子 - 嵌套循环的替代方案? 的相关文章

  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet

随机推荐

  • 对象序列化__sleep

    php 手册指出 它可以清理物体并且是 应该返回一个数组 该对象的所有变量的名称 应该将其序列化 我的理解是 如果一个人上了一堂课 像这样 它只会序列化对象和属性
  • 如何设置androidcamera2预览和拍摄尺寸?

    我正在使用一个SurfaceView显示我捕获的预览 我想使用 width 1080 height 1920 进行预览 在哪里可以设置预览的大小 我用谷歌搜索答案 但它们都是针对相机版本一的 我正在使用 android hardware c
  • 使用c#备份和恢复Azure sql数据库

    我想将 Azure sql 数据库备份到本地系统 然后在 C 中将该备份恢复到 Azure sql 数据库 任何人都可以帮助我吗 可以这样做吗 Azure SQL 数据库不支持按需创建 bak 文件 Azure SQL 数据库自动备份所有数
  • 如何仅在一个事务中禁用 PostgreSQL 触发器?

    我需要在事务中临时禁用一个 PostgreSQL 触发器 但不需要硬锁定表 有人知道这是否可能吗 像这样的事情 无需锁定表并禁用此事务之外的触发器 BEGIN TRANSACTION ALTER TABLE foo DISABLE TRIG
  • 在 Perl 中处理美元计算的最佳技术是什么?

    在 Perl 中处理美元计算的最佳技术是什么 特别是 以下需要工作 balance 10 payment balance 3 Each payment should be 3 33 How best to round amount bala
  • C#:“Pretty”类型名称函数?

    对于泛型类型 System Type 类的名称属性会返回一个奇怪的结果 有没有办法以更接近我指定的方式获取类型名称 例子 typeof List
  • 在 Swift 上委托 Objective-C 协议

    我正在使用 Swift 语言在 iOS 上实现 UDP 侦听器 为此 我正在转述CocoaAsyncSocket https github com robbiehanson CocoaAsyncSocket项目 我成功地使用 Bridgin
  • 在 C++ 中使用 pthread

    我在用pthread h in a cc文件 当我尝试使用时pthread exit 0 or pthread join mythrds yy NULL 它说 cc text 0x3e undefined reference to pthr
  • 无法使用 Server.MapPath

    我必须做什么才能做到Server MapPath work I have using System Web 还有什么 当我打字时Server没有快速结果选项 智能感知 Server 有什么帮助吗 你可以尝试使用这个 System Web H
  • 如何在 Objective-C 中对 URL 进行编码或解码

    有没有类似的东西 NSString URLencode NSString someString NSString URLdecode NSString someString 如果可以 如何实施 请注意投反对票的人 这不是一个简单的问题 我需
  • Code-golf:将乘法表输出到控制台

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 我最近向一位从事工作经验的学生推荐了一篇有关将乘法表转储到控制台的文章 它使用嵌套的 for
  • 雅虎财经历史数据下载网址无效

    我使用以下网址从雅虎财经获取历史数据 从 2017 年 5 月 16 日起 该网址已失效 好像他们已经更改了网址 新网址是 在上面更改的 URL 中有一个会话 cookie 它是碎屑 有什么想法如何以编程方式获取此cookie 在JAVA中
  • 无法通过api在材质表react中获取数据

    我正在尝试通过 Material React 表中的 api 获取数据 但它向我显示错误 如下所示 无效的挂钩调用 钩子只能在函数组件的主体内部调用 发生这种情况可能是由于以下原因之一 1 您的React和渲染器版本可能不匹配 例如Reac
  • 文本框文本在文本输入时消失

    基本上我有一个创建的用户窗体 我想知道是否可以添加用户窗体加载时存在的灰色文本 但一旦用户开始在文本框中输入文本 该文本就会消失 图片已过期 一旦用户开始输入 字体颜色应更改为黑色 任何帮助 将不胜感激 像这样的东西吗 Private Su
  • Kotlin Foo::class.java“未解析的参考:Java”错误

    我正在尝试将我的 Java 代码转换为HomePage class到科特林 我正在按照以下说明进行操作Kotlin org https kotlinlang org docs reference java interop html 获取类
  • SetCursorPos 无法通过远程桌面工作(从 WM_INPUT 事件读取)

    当读取鼠标位置时WM INPUT事件 并且鼠标光标被隐藏 看起来SetCursorPos通过远程桌面使用该应用程序时不起作用 当应用程序不通过远程桌面使用时 相同的代码可以正常工作 即我可以在所有方向上进行无限的鼠标移动 因为SetCurs
  • 如何使用 Bot Framework 在 Teams 中添加提及以及自适应卡

    我正在尝试发送带有自适应卡片附件的活动 并提及创建该帖子的用户 通过在线阅读 我发现您目前无法在自适应卡片中包含提及内容 有没有办法在发送活动时提及某人 例如在另一个附件中 我尝试设置activity Text 提及 这有效 但是它创建了两
  • Google Geocharts:同一地图上的区域和标记?

    我正在尝试使用谷歌地理图表 https google developers appspot com chart interactive docs gallery geochart 我有州数据和城市数据 我想在城市数据上显示它们 这意味着我想
  • 如何获取两个 git 分支之间不同提交的列表?

    我想查看两个分支之间仅非常见提交的列表 我怎样才能得到这样的输出 基本上是一个git diff y master new feature两个分支之间的总结 master new feature xxx Jan 1st 2018 initia
  • 呼叫其他代码呆子 - 嵌套循环的替代方案?

    对于我 或可能其他人 来说 拥有一个需要迭代的对象列表 然后与属性列表进行交互的情况并不罕见 我使用嵌套循环 如下所示 IList