输出异常消息,包括LINQ的所有内部

ser*_*gtk 4 c# linq

是否可以通过LINQ输出抛出异常的所有错误消息,包括inners?

我实现了没有LINQ的功能,但我希望有更简洁的代码.(这不是LINQ的目的吗?)

没有LINQ的代码如下:

try {
    ...
} catch (Exception ex) {
    string msg = "Exception thrown with message(s): ";
    Exception curEx= ex;
    do {
        msg += string.Format("\n  {0}", curEx.Message);
        curEx = curEx.InnerException;
    } while (curEx != null);
    MessageBox.Show(msg);
}
Run Code Online (Sandbox Code Playgroud)

Ant*_*ram 8

Linq处理序列,即对象集合.该exception.InnerException层次结构,而不是单一的嵌套对象的实例.你在算法上做的事情本质上不是一个序列操作,并且Linq方法不会涵盖它.

您可以定义一个探索层次结构的方法,并在找到对象时返回(产生)一系列对象,但这最终将与您当前用于探索深度的算法相同,尽管您可以选择应用关于结果的序列操作(Linq).