c#中有值类型集合吗?

本文关键字:集合 类型 | 更新日期: 2023-09-27 18:10:16

c#中有值类型语义的集合吗?所以set1等于set2,如果他们包含相同的结构/原语?也许顺序是一样的

c#中有值类型集合吗?

HashSet非常接近,但是==不比较集合中的值。如果它们包含相同的值,SetEquals将返回true。然而,顺序并不是考虑因素。如果顺序很重要,可以使用SequenceEqual

  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
  }