/// <summary> /// Compares for reference AND value equality. /// </summary> /// <param name="obj">The object to compare with this instance.</param> /// <returns> /// <c>true</c> if both operands are equal; otherwise, <c>false</c>. /// </returns> public bool Equals(ElectronicEmissionSystemData obj) { bool ivarsEqual = true; if (obj.GetType() != this.GetType()) { return(false); } if (this._systemDataLength != obj._systemDataLength) { ivarsEqual = false; } if (this._numberOfBeams != obj._numberOfBeams) { ivarsEqual = false; } if (this._emissionsPadding2 != obj._emissionsPadding2) { ivarsEqual = false; } if (!this._emitterSystem.Equals(obj._emitterSystem)) { ivarsEqual = false; } if (!this._location.Equals(obj._location)) { ivarsEqual = false; } if (this._beamDataRecords.Count != obj._beamDataRecords.Count) { ivarsEqual = false; } if (ivarsEqual) { for (int idx = 0; idx < this._beamDataRecords.Count; idx++) { if (!this._beamDataRecords[idx].Equals(obj._beamDataRecords[idx])) { ivarsEqual = false; } } } return(ivarsEqual); }