📜  c# 检查字典中的值是否唯一 - C# (1)

📅  最后修改于: 2023-12-03 15:13:52.049000             🧑  作者: Mango

C# 检查字典中的值是否唯一

在 C# 中,字典(Dictionary)是一种非常常见的数据结构。有时候我们需要检查字典中的值是否唯一。下面介绍两种方法实现这个功能。

方法一

我们可以用 Linq 的 Distinct 方法,将字典中的值放入一个列表中,再用 Count 方法统计列表中元素的个数即可。

Dictionary<string, int> dict = new Dictionary<string, int>();
bool isUnique = dict.Values.Distinct().Count() == dict.Values.Count;

这段代码中,如果 Values 列表中的元素个数与去重后的元素个数相等,说明字典中的值是唯一的。

方法二

不使用 Linq,我们也可以用 HashSet 来判断字典中的值是否唯一。我们可以将字典的值给 HashSet,如果 HashSet 的元素数等于字典的元素数,说明字典中的值是唯一的。

Dictionary<string, int> dict = new Dictionary<string, int>();
bool isUnique = new HashSet<int>(dict.Values).Count == dict.Count;
总结

以上是两种判断字典中值是否唯一的方法。使用 Linq 简单明了,使用 HashSet 更加高效。在实际编码中,可以根据实际需要选择适合的方法。