2

设想

已经在同一个网站上阅读过一篇文章,但没有成功,我感到有点难过,但我确信我以前做过。

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

代码

  Dictionary<int,SomeObject> oldDict = new Dictionary<int,SomeObject>();
  //oldDict gets populated somewhere else.
  Dictionary<int,SomeObject> newDict = new Dictionary<int,SomeObject>();
  newDict = oldDict.Take(200).ToDictionary();

显然,take 返回一个 IENumerable,因此您必须运行 ToDictionary() 将其转换回相同类型的字典。但是,它只是不起作用,它需要一些随机键选择器 - 还是什么?我什至尝试过铸造它,但无济于事。有任何想法吗?

4

1 回答 1

5

尝试这个:

newDict = oldDict.Take(200).ToDictionary(x => x.Key, x => x.Value);

基本上,字典允许您迭代键/值对;当您想转换字典时,您必须说出使用什么作为键和使用什么作为值。

但是,我会质疑您的代码的正确性 - 因为字典没有“前 200 个值”的概念。不要依赖字典中的排序。这基本上会从字典中为您提供一些有效的任意 200 个条目。

你想做什么?您对“前”200 个条目有何看法?

于 2010-03-26T15:50:17.550 回答