public long Traverse(int index, IGraphTraverser referencedTableCollector) { int targetIndex = this[index]; if (targetIndex >= 0) { return(referencedTableCollector.Traverse(targetIndex)); } return(0); }
public long Traverse(int index, IGraphTraverser referencedTableCollector) { NumberList <int> pairs = _pairs[index]; if (pairs == null) { return(0); } // Get the inner row indices used in the Keys and Values columns to store the values for the row[index] Dictionary long sum = 0; foreach (int innerRowIndex in pairs) { // Traverse references in the ref column for each inner row in the outer Dictionary sum += _refColumn.Traverse(innerRowIndex, referencedTableCollector); } return(sum); }
public long Traverse(int index, IGraphTraverser referencedTableCollector) { NumberList <int> references = this[index]; if (references == null) { return(0); } long sum = 0; foreach (int targetIndex in references) { if (targetIndex >= 0) { sum += referencedTableCollector.Traverse(targetIndex); } } return(sum); }