索引非唯一的列表

本文关键字:列表 唯一 索引 | 更新日期: 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.