4
在C#中是否有值類型語義的集合?那麼set1等於set2,如果它們包含相同的結構體/基元?也許是以相同的順序。C#中是否有任何值類型集合?
在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
}
值類型和平等語義不直接相關 - 此問題尚不清楚。 (另請參見[SequenceEqual](http://msdn.microsoft.com/zh-cn/library/vstudio/bb348567(v = vs.100).aspx)。) – user2864740
元組和可能的匿名對象是您最接近的投注。雖然,你通常無法列舉當然的屬性。 –