我知道字典不能确保添加元素的顺序是保持,我的意思是,在字典中添加很多项之后,如果尝试使用elementAt(i)获取元素方法,它可以返回一个期望的元素。
Exception.Data是一个IDictionary,所以我想知道在这种情况下是否属实,因为在MSDN上的文档中,他们使用foreach迭代这个属性来显示信息,所以我想这是在这种情况下保持秩序。
因此,在Exception.Data的情况下,添加的元素的顺序是保持?
答案 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
}
}