元组作为轻量级的数据结构,在c#中具有广泛的引用。但是元组的比较一直以来都是对于成员的依次比较。好在C#7.3开始,引入了元素的相等性比较,让元组的易用性有了大幅提升。
绑定
微软对此的介绍是“从 C# 7.3 开始,元组类型支持 == 和 != 运算符。 这些运算符按顺序将左边参数的每个成员与右边参数的每个成员进行比较,且比较是短路计算”
所以我们可以写出这样的代码,对元组进行比较
c#
var left = (5, 10);
var right = (5, 10);
Console.WriteLine(left == right);此外,元组的比较也支持可空类型的提升转换,以及类型的隐式转换,例如下面代码中可空类型与非空类型的比较,(int,int)和(long,long)之间的比较
c#
var left = (5, 10);
var right = (5, 10);
(int a, int b)? nullableTuple = right;
Console.WriteLine(left == nullableTuple.Value);
Console.WriteLine(left == nullableTuple);
(long a, long b) longTuple = (5, 10);
Console.WriteLine(left == longTuple);参考链接: