C#中是否有任何值类型集合?

Lar*_*sen 4 c#

在C#中是否存在具有值类型语义的集合?如果set1包含相同的结构/原语,那么set1等于set2?也许是在同一个顺序.

LVB*_*Ben 5

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
  }
Run Code Online (Sandbox Code Playgroud)