Jon*_*eet 17
好吧,我相信一组密钥将决定哪个项目是第一个,但不是以明确定义(或易于预测)的方式.换句话说,不要假设它总是以相同的方式工作 - 它依赖于在运行之间保持相同的哈希码实现是不安全的.
编辑:我相信事实上,插入的顺序确实很重要,这与我之前的想法相反.但是,这是特定于实现的(因此可以在下一版本中轻松更改).我相信,对于当前的实现,添加的第一个条目将是第一个返回的条目,如果它尚未被删除.如果添加的第一个条目被删除,则排序被破坏 - 并不是最早的条目被删除.这是一个例子:
using System;
using System.Collections.Generic;
class Test
{
static void Main(string[] args)
{
var dict = new Dictionary<int, int>();
dict.Add(0, 0);
dict.Add(1, 1);
dict.Add(2, 2);
dict.Remove(0);
dict.Add(10, 10);
foreach (var entry in dict)
{
Console.WriteLine(entry.Key);
}
Console.WriteLine("First key: " + dict.First().Key);
}
}
Run Code Online (Sandbox Code Playgroud)
结果是10,1,2和"第一个键:10" - 显示最新添加的条目最终返回.
但是,我想再次强调一切都可以在框架版本之间发生变化.
| 归档时间: |
|
| 查看次数: |
19164 次 |
| 最近记录: |