public override bool Equals(object obj) { if (obj is SelectStatement statement) { return(Kind == statement.Kind && Class == statement.Class && OutputColumns.SequenceEqual(statement.OutputColumns) && (MainSource == statement.MainSource || MainSource.Equals(statement.MainSource)) && (FilterConditions == statement.FilterConditions || FilterConditions.Equals(statement.FilterConditions)) && OutputOrder.SequenceEqual(statement.OutputOrder)); } else { return(false); } }