Exception.Data属性的IDictionary始终保持顺序?

时间:2017-02-04 16:33:10

标签: c# exception exception-handling

我知道字典不能确保添加元素​​的顺序是保持,我的意思是,在字典中添加很多项之后,如果尝试使用elementAt(i)获取元素方法,它可以返回一个期望的元素。

Exception.Data是一个IDictionary,所以我想知道在这种情况下是否属实,因为在MSDN上的文档中,他们使用foreach迭代这个属性来显示信息,所以我想这是在这种情况下保持秩序。

因此,在Exception.Data的情况下,添加的元素的顺序是保持?

1 个答案:

答案 0 :(得分:1)

嗯......如果这样:

//      Extra details:
//        Key: 'stringInfo'              Value: Information from NestedRoutine2.
//        Key: 'IntInfo'                 Value: -903
//        Key: 'DateTimeInfo'            Value: 7/29/2013 10:50:13 AM
//        Key: 'ExtraInfo'               Value: Information from NestedRoutine1.
//        Key: 'MoreExtraInfo'           Value: More information from NestedRoutine1. 

是Exception.Data包含的所有Key的列表,那么为什么它们是有序的,当你可以做这样的事情时:

string[] exceptionList = { "stringInfo", "IntInfo", "DateTimeInfo", "ExtraInfo", "MoreExtraInfo" };
foreach ( string exceptionName in exceptionList ) {
  if ( myData.Exception.Data.ContainsKey(exceptionname) ) {
    // do something with that exception key/value pair
  }
}