索引非唯一的列表
本文关键字:列表 唯一 索引 | 更新日期: 2023-09-27 17:54:53
我一直认为任何索引都应该是唯一的,但我认为至少对于SQL Server来说是不正确的,如下面的帖子所示:
聚集索引必须是唯一的吗?
最近,我必须在一个集合中存储大量数据,并想到使用字典,因为它是通过索引获取对象的最快集合。但我的集合必须允许重复密钥。但事实上,重复的键不是问题,因为返回的任何对象都符合要求(对象不是唯一的,但键是唯一的)。
更多的研究使我想到了下面这篇文章:
c# Hashset包含非唯一对象
它展示了一种获得具有"重复键"的哈希集的方法。他的问题将是我的解决方案,但我想知道是否有任何其他的方式,我可以有一个列表与重复的关键字,这使我能够非常快速地搜索,而不必做任何解决这个问题。
"重复索引不是问题,因为它们中的任何一个都将满足要求"
如果您的意思是,在按索引检索项时,根据相同的索引值获取任何项都可以使您满意,那么简单的Dictionary
就足够了。
。
Dictionary<int, string> myData = new Dictionary<int, string>();
myData[1] = "foo";
myData[2] = "bar";
myData[2] = "baz"; // overwrites "bar"
var myDatum = myData[2]; // retrievs "baz" not "bar", but this is satisfactory.