C# 退出使用 lambda 的泛型 ForEach

2024-02-07

有谁知道是否可以退出使用 lambda 的通用 ForEach?例如

someList.ForEach(sl =>
  {
    if (sl.ToString() == "foo")
        break;

    // continue processing sl here
    // some processing code
  }
);

该代码本身无法编译。我知道我可以使用常规的 foreach,但为了保持一致性,我想使用 lambda。

非常感谢。


当然。但首先请注意,我建议不要这样做;我说序列运算符不应该有副作用,而语句应该有副作用。如果您要在 ForEach lambda 中执行某些操作,请将其作为 foreach 循环体中的语句,而不是使其看起来像序列运算符。

也就是说,这就是你要做的。首先,您自己编写一个适用于任意序列而不仅仅是列表的 ForEach:

public static void ForEach<T>(this IEnumerable<T> sequence, Action<T> action)
{
    foreach(var item in sequence) action(item);
}

现在你这样写你的休息时间:

someList
    .TakeWhile(x=>x.ToString() != "foo")
    .ForEach(sl=>
    {/*your action here*/});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 退出使用 lambda 的泛型 ForEach 的相关文章

随机推荐

  • jeditable 意外触发嵌套项目上的 Draggable

    我使用jquery ui的draggable进行拖放 并且可编辑的 http www appelsiini net projects jeditable用于内联编辑 当我拖放一个也可编辑的元素时 在它被放置后 jeditable 立即启动并
  • 防止/限制方法继承

    我有一个应用程序 其中许多对象都扩展一个抽象类 该类定义了类似的方法create edit retrieve and delete 由于每个子类对这些函数都使用相同的逻辑 因此抽象类定义了默认行为 并且在需要增强的少数情况下 子类可以覆盖或
  • Bootstrap 导航栏垂直显示而不是水平显示

    我正在使用 CodePen 开发一个项目 并使用 bootstrap 来制作导航栏 但由于某种原因 它是垂直显示而不是水平显示 即使我从W3学校 https www w3schools com bootstrap bootstrap nav
  • maven中的“pom”包装是什么?

    我得到了一个 Maven 项目来编译并部署在 tomcat 服务器上 我今天之前从未使用过 Maven 但我已经在谷歌上搜索了很多 貌似是顶级水平pom xml该项目中的文件的打包类型设置为pom 之后我应该做什么mvn install部署
  • Java查询数据库后返回一个数组

    我必须查询 MSSQL 数据库 并且希望查询结果作为 Array 或 ArrayList 返回 我现在有这个代码 但它给出了一个错误 我有到数据库的连接 所以这不是问题 public ArrayList
  • 在 Linux 上嗅探数据包时过滤网络堆栈中的数据包?

    我有一个问题要问底层网络 Linux 专家 我必须为我大学的安全项目构建两个工具 第一个工具是 ARP 中毒攻击者 它会毒害远程主机的 ARP 缓存 以便检索他发送到另一台主机的数据 我使用原始套接字用 C 语言编写了这个工具 它工作得很好
  • 选择数据表中的所有 jsf primefaces

    我正在尝试创建一个全选按钮或复选框 单击该按钮或复选框时 所有 selectbooleanCheck 框都会被选中 有没有直接简单的方法 我开始创建 selectcheckbox 当更改时它将 selectAll 谢谢
  • 如何在输出文件中抑制 stargazer() 信息

    我正在使用stargazer将 R 数据帧输出为乳胶代码的包 library stargazer stargazer mtcars 这是输出 Table created by StarGazer v 3 0 1 by Marek Hlava
  • 如何重新初始化 jQuery DataTables 上的数据排序?

    我在我的项目中使用 jQuery Datatables 并且通过使用属性在列上提供了 自定义值 排序data sort如此处所述 https datatables net examples advanced init html5 data
  • Android Studio“提取方法”快捷键 Ctrl+Alt+M 不起作用

    The android studio shortcut for extract function is not working for me If I press Ctrl Alt M nothing is happening and wh
  • AWS C++ S3 SDK PutObjectRequest 无法连接到端点

    在使用 AWS C SDK 时 我遇到了一个问题 即尝试执行 PutObjectRequest 时会抱怨上传超过 400KB 时 无法连接到端点 Aws Client ClientConfiguration clientConfig cli
  • 在knitr Latex文档中缩放图形

    我正在尝试将图表包含到带有knitr的乳胶文档中 由于 knitr 包含 webshot 包 因此效果很好 但是 如果我想调整乳胶输出的图形大小 图形环境会变大 但绘图图表不会被调用到手动设置的图形宽度和高度 指定 webshot 选项 例
  • 验证应该在 Form 对象中还是模型中完成?

    这个问题主要针对PHP中的Zend 尽管它当然也适用于其他语言和框架 所以我欢迎大家的意见 我最近才开始使用 Zend 框架 虽然它并不完美 但我用它玩得很开心 然而 让我发疯的一件事是 我看到的大多数使用 Zend 的人的例子都是特殊形式
  • GetSystemMetrics() 对 .NET 4.5 和 .NET 4.0 返回不同的结果

    在 NET 4 0 gt NET 4 5 应用程序迁移过程中 我发现了一种极其奇怪的行为 我已经能够将这个问题追溯到这个简短的代码片段 class Program System Runtime InteropServices DllImpo
  • 如何在经典asp中执行多线程/后台进程

    我需要通过经典 asp 应用程序上的后台作业发送电子邮件 这样用户就不必等待缓慢的网络服务器完成发送电子邮件 我知道我可以使用 Ajax 生成两个单独的请求 但我不想需要 Javascript 另外 我怀疑有更好的方法来实现这一目标 有想法
  • Cordova 构建错误:在严格模式下使用 const

    我在 VS 2015 中创建了一个新的 Cordova 项目 当我尝试运行代码时 我在构建输出中收到以下错误 1 gt Build started Project TestProject Configuration Debug Androi
  • Docker 返回退出代码 3221225781 安装 vc_redist.x64.exe

    我在 docker RUN 中看到了很多有关退出代码 3221225781 的问题 但我仍然找不到答案 考虑这个 dockerfile FROM mcr microsoft com dotnet core runtime 3 1 WORKD
  • 将自然语言描述解析为结构化数据的策略

    我有一系列要求 并且正在寻找最好的基于Java使用的策略 算法 软件 基本上 我想获取一组由真人用自然英语输入的食谱成分 并将元数据解析为结构化格式 请参阅下面的要求以了解我想要做什么 我环顾过这里和其他地方 但没有找到任何关于下一步方向的
  • 在Java中为单链表创建新节点

    我仍在学习 Java 目前正在解决 破解编码面试 中的问题 第 2 章 LinkedList 中的问题之一要求从未排序的链表中删除重复项 我在 GitHub 上找到了一堆答案 解决方案 但我想创建自己的 Node 并编写自己的版本 到目前为
  • C# 退出使用 lambda 的泛型 ForEach

    有谁知道是否可以退出使用 lambda 的通用 ForEach 例如 someList ForEach sl gt if sl ToString foo break continue processing sl here some proc