public void Merge(CoverageFileData coverageFileData) { // If LineExecutionCounts is null then this class has not be merged with any coverage object yet so just take its values if (LineExecutionCounts == null) { LineExecutionCounts = coverageFileData.LineExecutionCounts; SourceLines = coverageFileData.SourceLines; } else { for (var i = 0; i < LineExecutionCounts.Length; i++) { if (!coverageFileData.LineExecutionCounts[i].HasValue) { // No data to merge continue; } else if (!this.LineExecutionCounts[i].HasValue) { // Just take the given data this.LineExecutionCounts[i] = coverageFileData.LineExecutionCounts[i]; } else { // If we both have values sum them up this.LineExecutionCounts[i] += coverageFileData.LineExecutionCounts[i]; } } } }
/// <summary> /// Copy constructor /// </summary> /// <param name="coverageFileData"></param> public CoverageFileData(CoverageFileData coverageFileData) { this.FilePath = coverageFileData.FilePath; this.LineExecutionCounts = coverageFileData.LineExecutionCounts.ToArray(); this.SourceLines = coverageFileData.SourceLines.ToArray(); }