C# C自定义字典从IEnumerable转换回 脚本

C# C自定义字典从IEnumerable转换回 脚本,c#,dictionary,ienumerable,todictionary,take,C#,Dictionary,Ienumerable,Todictionary,Take,我已经在同一个网站上读了一篇关于这方面的文章,但没有成功,我感到有点困惑,但我相信我以前也做过 我有一本字典。 我想从字典中取前200个值 密码 显然,take返回一个IENumerable,因此必须运行ToDictionary将其转换回相同类型的字典。然而,它就是不起作用,它需要一些随机键选择器之类的东西——或者什么?我甚至试着只是铸造它,但没有任何效果。 有什么想法吗?试试这个: newDict = oldDict.Take(200).ToDictionary(x => x.Key,

我已经在同一个网站上读了一篇关于这方面的文章,但没有成功,我感到有点困惑,但我相信我以前也做过

我有一本字典。 我想从字典中取前200个值

密码 显然,take返回一个IENumerable,因此必须运行ToDictionary将其转换回相同类型的字典。然而,它就是不起作用,它需要一些随机键选择器之类的东西——或者什么?我甚至试着只是铸造它,但没有任何效果。 有什么想法吗?

试试这个:

newDict = oldDict.Take(200).ToDictionary(x => x.Key, x => x.Value);
基本上,字典允许您迭代键/值对;当您想要转换回字典时,您必须说明使用什么作为键以及使用什么作为值

但是,我会质疑代码的正确性——因为字典没有前200个值的概念。不要依赖字典里的顺序。这将基本上为您提供字典中的大约200个条目


你想干什么?您对前200个条目的想法是什么?

字典是作为哈希表实现的,因此它不保证自然排序顺序。因此,前200个值实际上意味着任何旧的200个值。你觉得这样行吗?如果没有,请先进行排序。
newDict = oldDict.Take(200).ToDictionary(x => x.Key, x => x.Value);