public static bool operator ==(Tuple3 <T1, T2, T3> a, Tuple3 <T1, T2, T3> b) { if (Tuple3 <T1, T2, T3> .IsNull(a) && !Tuple3 <T1, T2, T3> .IsNull(b)) { return(false); } if (!Tuple3 <T1, T2, T3> .IsNull(a) && Tuple3 <T1, T2, T3> .IsNull(b)) { return(false); } if (Tuple3 <T1, T2, T3> .IsNull(a) && Tuple3 <T1, T2, T3> .IsNull(b)) { return(true); } return (a.Item1.Equals(b.Item1) && a.Item2.Equals(b.Item2) && a.Item3.Equals(b.Item3)); }