直接获取字典<;int,对象>;C#中第一个没有foreach的键

本文关键字:第一个 的键 gt foreach 获取 字典 lt int 对象 | 更新日期: 2023-09-27 18:29:20

我有以下字典内容:

[0] {75, SimpleObject}
[1] {56, SimpleObject}
[2] {65, SimpleObject}
[3] {12, SimpleObject}
...

我想拿到第一把钥匙,意思是75,没有前臂。

也许key这个词应该引用[0]而不是75。

因为基于这个密钥,我想使用SimpleObject,我写道:

SimpleObject s = dictionary[0] as SimpleObject;

但VS2010抛出了一个例外:

The given key was not present in the dictionary.

我知道[0]的意思是字典里的密钥号0,意味着我是否可以拥有

[0] {72,  SimpleObject} //here
[1] {56, SimpleObject}
[2] {65, SimpleObject}
[3] {12, SimpleObject}
...

那么我应该得到通讯员CCD_ 4。

对不起,这是第一次使用词典,我想了解更多信息。

问题:如何得到数字75和他的SimpleObject?

谢谢。

附言:我知道在StackOverflow中已经存在类似的主题,但没有一个能帮助我获得那个密钥。

直接获取字典<;int,对象>;C#中第一个没有foreach的键

using System.Linq;
...
dictionary.First().Key // Returns 75
dictionary.First().Value // returns the related SimpleObject

并不是说Dictionary<TKey, TValue>是一个无序的集合,因此它没有第一个或最后一个的概念。呈现的项目顺序基本上是随机的。您不能依赖于应用程序实例之间的一致性。

如果您确实想要一些订单,那么您应该使用SortedDictionary<TKey, TValue>。这里展示的项目是以有序的方式完成的,并将在应用程序的运行之间为您提供一致的结果

// Consistent output is produced below
var dictionary = new SortedDictionary<int, SimpleObject>();
var pair = dictionary.First();
Console.WriteLine("{0} -> {1}", pair.Key, pair.Value);

Dictionary是一个没有显式排序的(键,值)对结构。也许您正在寻找的内容对于SortedDictionary是有用的,但对于常规Dictionary则没有任何意义。

您可以使用

dictionary.First();

75是键值而不是索引:

SimpleObject s = dictionary[75] as SimpleObject;

Dictionary<T,U>是无序的,所以您不应该依赖于它所包含的键值对的顺序。

字典不是有序集合,它没有任何索引。

使用密钥访问项目:

SimpleObject s = dictionary[75];