【发布时间】:2023-03-08 14:42:01
【问题描述】:
cipher = new Dictionary<char,int>;
cipher.Add( 'a', 324 );
cipher.Add( 'b', 553 );
cipher.Add( 'c', 915 );
如何获得第二个元素?例如,我想要这样的东西:
KeyValuePair pair = cipher[1]
其中pair包含( 'b', 553 )
根据合作社使用列表的建议,一切正常:
List<KeyValuePair<char, int>> cipher = new List<KeyValuePair<char, int>>();
cipher.Add( new KeyValuePair<char, int>( 'a', 324 ) );
cipher.Add( new KeyValuePair<char, int>( 'b', 553 ) );
cipher.Add( new KeyValuePair<char, int>( 'c', 915 ) );
KeyValuePair<char, int> pair = cipher[ 1 ];
假设我是正确的,项目按添加顺序保留在列表中,我相信我可以只使用List,而不是建议的SortedList。
【问题讨论】:
-
对于那些阅读这个问题的人,我强烈质疑您是否需要按索引访问字典中的元素。值得检查您的范例。同理,不需要 DataReader 的第 5 条记录。您可能只需要枚举这些项目。如果不是 foreach,则使用 Dictionary.GetEnumerator() 的 MoveNext() 和 Current。否则使用不同的、可索引的集合对象,如 SortedDictionary 或数组。有时这个 Q 会被来自其他语言但没有 foreach 功能的编码人员询问,因此有一个适应阶段。
标签: c# dictionary