示例#1
0
        public long Traverse(int index, IGraphTraverser referencedTableCollector)
        {
            int targetIndex = this[index];

            if (targetIndex >= 0)
            {
                return(referencedTableCollector.Traverse(targetIndex));
            }

            return(0);
        }
示例#2
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);
        }
示例#3
0
        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);
        }