c# - 在写入 Logger 或 Console 时将 foreach 转换为 LINQ

标签 c# linq

给定以下一段 foreach 代码,我如何将其编写为 LINQ

foreach(var error in ex.Errors)
{
   Logger.Error("Field {0} has an error : {1}. for SSN {2}",error.FieldName,    error.Message, error.SSN);
} 

最佳答案

LINQ 用于生成结果,例如新序列和聚合。它适合产生副作用,例如日志输出。

foreach在你的代码中循环是一个完全可以接受的、非常可读的解决方案。如果你想摆脱它,你可以使用 List.ForEach 方法,它需要一个 Action<T> :

ex.Errors.ForEach(
    error => Logger.Error(
        "Field {0} has an error : {1}. for SSN {2}"
    ,   error.FieldName
    ,    error.Message
    ,   error.SSN);
);

关于c# - 在写入 Logger 或 Console 时将 foreach 转换为 LINQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34997430/

相关文章:

c# - 我的字符串反转函数有什么问题? (C#)

c# - 应用 CQRS - 是否需要对薄读取层进行单元测试?

c# - 不同的格式到一行 Interop.word

C# 检查基于文本的答案是否正确

c# - 用于差异集的 LINQ

C# LINQ 按如下所示格式的对象列表进行分组

c# - Xamarin.Forms - 标签 FontSize OnPlatform - XAML 错误

c# - Linq 选择昨天的日期

c# - 如何在linq中转换计数?

c# Linq `List<Interface>.AddRange` 方法不工作