C#中是否有任何带有值类型语义的集合?如果set1包含相同的结构/原语,那么set1等于set2?也许是按照相同的顺序。
答案 0 :(得分:5)
HashSet非常接近,但==
不会比较集合中的值。如果SetEquals
包含相同的值,则SequenceEqual
将返回true。但是,订单不会考虑。如果订单很重要,您可以使用 static void Main(string[] args)
{
HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };
HashSet<int> set2 = new HashSet<int> { 2, 1, 3 };
HashSet<int> set3 = new HashSet<int> { 1, 2, 3 };
Console.WriteLine(set1.SetEquals(set2)); // True
Console.WriteLine(set1.SequenceEqual<int>(set2)); // False
Console.WriteLine(set1.SequenceEqual<int>(set3)); // True
}
。
{{1}}