我有一个格式为DICTIONARY<STRING,STRING>
的字典,我在其中有5个元素的值。我需要的输出是,如果我想在字典中存储一个新的元素,它将自动存储在最后一个元素前面的位置。我怎样才能做到这一点?在C#中字典的第N个位置存储值#
1
A
回答
1
您可以轻松编辑任何像这样的项目:
Dictionary<string,string> dic = new Dictionary<string,string>();
dic.Add("a", "A value");
dic.Add("b", "B value");
dic["a"] = "new A value";
如果你想使用顺序和索引,然后使用List:
public class Item
{
public string Key;
public string Value;
}
List<Item> items = new List<Item>();
items.Add(new Item { Key = "a", Value = "A Value" });
items.Add(new Item { Key = "b", Value ="B Value" });
items[1] = new Item { Key = "c", Value = "C value" };
当然,在这种情况下,你可以有重复键即如果你想避免重复键,那么你应该自己检查。
0
你不能指定它是如何存储在字典中的。它是一个散列表,下面是散列表,它基于散列表。
你能让你的问题更清楚吗?如果你更关心在哪里存储元素,你可以使用Arrays(如果你不担心键)。
2
显然你不知道Dictionary是如何工作的。 字典基于具有多个索引的散列函数。基于该键,该值被放置在词典的某处。
例如,5个元素的字典可以是这样的:
[0] - > “元素1”
[1] - >
[2] - >
[3] - > “element2的”, “元素5”
[4] - > “元素3”
[5] - > “element4”
因此,基于此,在“last”元素之前存储某些内容是没有意义的。没有“最后”元素。在该示例中,element5
存储在element4
之前,这恰好是由于Dictionary使用的散列函数。如果你遍历字典,你会得到不同于你所做的插入顺序的结果。
编辑:如果我理解正确,您需要一些数据结构,您可以调用instance[key]
并且同时能够遍历列表。这样的数据结构不可能存在,因为key
是一个字符串,并且没有办法从字符串键中产生预期的顺序。不管哈希函数是什么,它都不起作用。在任何散列表(或字典)中,如果您添加(key1/value1)然后(key2/value2),您将可能获得相同的元素顺序,除非这两个键的key1和key2散列到同一个表项。
简而言之,您不能仅基于字典中存储项的顺序来构建算法。顺序取决于散列函数和索引表大小。
相关问题
- 1. ARM Neon:在一个8字节的向量通道中存储非零字节的第n个位置
- 2. 如何在linq中使用c#中字典的前N个值?
- 3. 压缩字典存储在zlib中的位置?
- 4. 切出嵌套字典值中的第N个元素
- 5. 在c中显示小数至第n个位置#
- 6. 在Elgg中存储键值字典
- 7. 数组存储在C中的位置?
- 8. 在第n个位置插入元素
- 9. 字典不存储值
- 10. Python字典存储键值
- 11. 在Rhino.Mocks中存储字典
- 12. 在C#字典中为一个键添加多个位图值
- 13. PHP替换字符串中第n个位置的2个字符
- 14. 在JavaScript中存储HTML标记的第n个类名称
- 15. 如何确定在64位值中设置的第n个最大有效位的位置?
- 16. PHP替换字符串中第一次出现的第n个位置
- 17. 在文件中查找某个字符的位置并存储其位置bash
- 18. 如何检索字典中的第N个项目?
- 19. 列表中的第n个项目到字典python
- 20. C - 存储在符号位置的打印值
- 21. 如何仅为字典中的键存储3个值? Python
- 22. 在Json中存储字典的数据
- 23. 存储Google位置SQLite中的位置
- 24. 存储在一个Python字典
- 25. Activator.CreateInstance存储在一个字典
- 26. 参考值的“类型”存储在内存中的位置?
- 27. 存储在字典中的C#“匿名”类型的列表
- 28. 如何在ASP.NET隐藏字段值中存储字典?
- 29. 查找int中的第n个SET位
- 30. 在C中n位的2^n个状态循环,n> 32
词典没有为其元素定义任何顺序。恳求[编辑]这篇文章来澄清你的实际目标是什么,并显示所需的输出样本。 –
您可以参考http:// stackoverflow。com/questions/1600606/how-the-dictionary-is-internal-maintained这个问题知道Dictionary是如何在内部定义的。如果你提到你的目标,可能会有其他解决方案。词典不打算有任何顺序。 – Vijay
[KeyedCollection](https://msdn.microsoft.com/en-us/library/ms132438(v = vs.110).aspx)可能会做你想做的。 –
Joe