如果Dictionary
总共有Y
项,那么N
时我们需要N
项。 Y
然后如何实现这个目标?
示例:
Dictionary<int, string> items = new Dictionary<int, string>();
items.add(2, "Bob");
items.add(5, "Joe");
items.add(9, "Eve");
// We have 3 items in the dictionary.
// How to retrieve the second one without knowing the Key?
string item = GetNthItem(items, 2);
如何撰写GetNthItem()
?
答案 0 :(得分:3)
Dictionary<K,V>
没有任何内在的顺序,所以实际上没有第N项这样的概念:
话虽如此,如果您只是想在ElementAt
:
string item = items.ElementAt(2).Value;
(请注意,如果您再次运行相同的代码,或者即使您快速连续两次致电ElementAt
,也无法保证在同一位置找到相同的项目。)
答案 1 :(得分:2)
字典未订购。没有第n项。
使用OrderedDictionary和Item()
答案 2 :(得分:1)
使用LINQ:
Dictionary<int, string> items = new Dictionary<int, string>();
items.add(2, "Bob");
items.add(5, "Joe");
items.add(9, "Eve");
string item = items.Items.Skip(1).First();
您可能希望使用FirstOrDefault
代替First
,具体取决于您对数据的了解程度。
另外,请注意,虽然字典确实需要对其项目进行排序(否则它将无法迭代它们),但该排序是一个简单的FIFO(它不可能是其他任何东西,因为{{ 1}}不要求您的商品为IDictionary
)。
答案 3 :(得分:0)
string item = items[items.Keys[1]];
但是,请注意字典未排序。根据您的要求,您可以使用SortedDictionary
。