当前位置:  开发笔记 > 编程语言 > 正文

谁在词典<>.第一个()?

如何解决《谁在词典<>.第一个()?》经验,为你挑选了1个好方法。

Enumerable.First()当您在Dictionary集合的实例上调用它时,.NET 3.5扩展方法的含义是什么?

密钥集是确定哪个项目是第一个,还是仅仅未定义?



1> Jon Skeet..:

好吧,我相信一组密钥决定哪个项目是第一个,但不是以明确定义(或易于预测)的方式.换句话说,不要假设它总是以相同的方式工作 - 它依赖于在运行之间保持相同的哈希码实现是不安全的.

编辑:我相信事实上,插入的顺序确实很重要,这与我之前的想法相反.但是,这特定于实现的(因此可以在下一版本中轻松更改).我相信,对于当前的实现,添加的第一个条目将是第一个返回的条目,如果它尚未被删除.如果添加的第一个条目被删除,则排序被破坏 - 并不是最早的条目被删除.这是一个例子:

using System;
using System.Collections.Generic;

class Test
{
    static void Main(string[] args)
    {
        var dict = new Dictionary();        
        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);
    }
}

结果是10,1,2和"第一个键:10" - 显示最新添加的条目最终返回.

但是,我想再次强调一切都可以在框架版本之间发生变化.

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有