c# - 使用 LINQ/lambdas 构建以逗号分隔的内部异常消息字符串

标签 c# linq lambda

<分区>

SmtpFailedRecipientsException.InnerExceptions 是一个 SmtpFailedRecipientException 数组。我想构建一个如下所示的字符串:

"The following recipients failed: [joe@domain1.com, steve@domain2.com]. The email was sent to all other recipients succesfully"

SmtpFailedRecipientException.FailedRecipient 保存电子邮件地址。

我正在尝试找出是否有一种方法可以使用 LINQ 和/或 lambda 函数在这个数组上有效地执行 join,也许将其转换为 string[] 通过阅读 SmtpFailedRecipientException.Message 或类似的东西,而不是编写 C 风格的 for 循环?

这个问题 ( Getting all messages from InnerException(s)? ) 解决了层次嵌套异常的更一般情况,但这不是我所追求的......那里的答案比我需要的要复杂得多 (如此处的答案所示)。

最佳答案

string[] exceptionMessages = yourSmtpFailedRecipientsException.InnerExceptions
    .Select(ex => ex.Message)
    .ToArray();

如果你想用逗号分隔输出你可以使用String.Join:

Console.Write(String.Join(",", exceptionMessages));

关于c# - 使用 LINQ/lambdas 构建以逗号分隔的内部异常消息字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33628599/

相关文章:

C#:是否有一个干净的模式来找到与使用相结合的正确对象?

c# - 使用 Lambda 查询 XDocument

c# - 如何检查KeySelector中的属性名称?

linq - 如何过滤嵌套集合 Entity Framework 对象?

c# - 如何获取 IEnumerable 中元素的索引?

c# - 通过 lambda 从另一个集合中排除一个集合

java - 在 Java 中将函数应用于 while 循环

c# - MVVM C#​​ 如何将异步数据加载到属性中?

c# - 对象终结或垃圾收集事件

c# - 通过 C# 中的列表列出数据库值